System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform

ABSTRACT

A workflow, enterprise, and mail-enabled application server and platform supports distributed computing and remote execution of web applications. Lotus Domino online services (DOLS) is used by a web site administrator to configure Internet Notes (iNotes) clients to auto download from server, thus providing iNotes clients with web access using HTTP with various browsers, and with local processing and replication. A local run time model comprises a hierarchy of models including object data store model, security model, indexing model, replication model, agent workflow model and mail model. DOLS provides a layered security model that allows flexibility for controlling access to all or part of an application. The highest level of security is managed through a database access control list (ACL). Further refinements within the security model provide access to specific documents, and their views, forms or folders, and include read access lists, write access lists, form access lists and readers and authors fields.

This application is a divisional of U.S. patent application Ser. No.09/596,845 filed 19 Jun. 2000 now U.S. Pat. No. 7,219,304 by Carl J.Kraenzel, et al. for A SYSTEM AND METHOD FOR DEVELOPING ANDADMINISTERING WEB APPLICATIONS AND SERVICES FROM A WORKFLOW, ENTERPRISE,AND MAIL-ENABLED WEB APPLICATION SERVER AND PLATFORM.

CROSS REFERENCES TO RELATED APPLICATIONS

The following U.S. patent applications are assigned to the same assigneehereof, contain subject matter related, in certain respect, to thesubject matter of the present application and are incorporated herein byreference:

U.S. patent application Ser. No. 09/596,283, filed Jun. 19, 2000, nowU.S. Pat. No. 6,742,026, issued May 25, 2004, for “System and Method forProviding a Distributable Runtime”;

U.S. patent application Ser. No. 09/596,282 filed Jun. 19, 2000 now U.S.Pat. No. 7,360,082, issued Apr. 15, 2008, for “System and Method forDownloading Security Context Elements Governing Execution ofDownloadable and Distributable Agents”;

U.S. patent application Ser. No. 09/596,963 filed Jun. 19, 2000, nowU.S. Pat. No. 6,574,617, issued Jun. 3, 2003, for “System and Method forSelective Replication of Databases Within a Workflow, Enterprise, andMail-Enabled Web Application Server and Platform”;

U.S. patent application Ser. No. 09/597,997 filed Jun. 19, 2000 now U.S.Pat. No. 6,785,721, issued Aug. 31, 2004, for “System and Method forProviding a Distributable Runtime That Deploys Web Applications andServices From a Workflow, Enterprise, and Mail-Enabled Web ApplicationServer and Platform”;

U.S. patent application Ser. No. 09/596,783 filed Jun. 19, 2000 now U.S.Pat. No. 6,845,383, issued Jan. 18, 2005, for “System and Method forManaging Concurrent Scheduled or On-demand Replication ofSubscriptions”; and

U.S. patent application Ser. No. 09/596,745 filed Jun. 19, 2000 now U.S.Pat. No. 6,854,016, issued Feb. 8, 2005, for “A System and Method for aWeb Based Trust Model Governing Delivery of Services and Programs”.

BACKGROUND OF THE INVENTION

Technical Field of the Invention

This invention pertains to a workflow, enterprise, and mail-enabled webapplication enhanced for distributed computing and remote execution.More particularly, it pertains to providing a user interface fordistinguishing between and manipulate states of replica copies ofdocuments, databases and web sites online and offline.

Background Art

Lotus Notes™ is a workflow enterprise and mail enabled applicationserver and platform.

Domino™ is an enhancement to Notes to add web capabilities. Thus, Dominois a workflow enterprise and mail enabled web application server andplatform. There is a need in the art to enhance the Domino server andplatform to allow distributed computing and remote execution of Dominoweb applications.

QuickPlace™ is an enhancement to Domino. It is a workflow, enterpriseand mail-enabled web application server and environment for rapidcreation of collaborative user communities. There is a need in the artto enhance this server and platform to allow distributed computing andremote execution of QuickPlace applications.

Microsoft Exchange™ is a mail enabled application server and platform.This does not support workflow, nor scale easily to an enterprise level.Novel's GroupWise (TM) is a workflow enabled enterprise server andplatform. This does not support mail, nor scale easily to an enterpriselevel. There is a need in the art for a mail and workflow webapplication server and environment which supports mail and scales easilyand well to the enterprise level, which requires that all softwareelements need to scale to very large applications with respect toperformance, loading, and administration tools.

It is an object of the invention to provide a system and method forenhancing a workflow, enterprise, and mail-enabled application serverand platform to support distributed computing and remote execution ofweb applications.

It is a further object of the invention to provide a system and methodfor enhancing a workflow, enterprise and mail-enabled web application toallow distributed computing and remote execution of collaborative usercommunity creation.

SUMMARY OF THE INVENTION

In accordance with the invention, there is provided a system and methodfor providing a user interface to distinguish between and manipulatestates of replica copies of documents, databases and web sites onlineand offline. Web synchronization controls are provided as an in-line toa web page status indicator and menu of commands for switchingonline/offline operation, triggering synchronization and viewing andediting synchronization properties; and utilities provided for managingscheduled synchronization and credentials necessary to executesynchronization.

In accordance with an aspect of the invention, there is provided acomputer program product configured to be operable for providing a userinterface to distinguish between and manipulate states of replica copiesof documents online and offline.

In accordance with an aspect of the invention, there is provided acomputer program product configured to be operable to for defining asubscription in a workflow, enterprise and mail-enabled applicationserver.

Other features and advantages of this invention will become apparentfrom the following detailed description of the presently preferredembodiment of the invention, taken in conjunction with the accompanyingdrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a high level system diagram illustrating the relationship ofthe DOLS facility of the preferred embodiment invention within contextof related server and client applications.

FIG. 2 is a diagram illustrating the objects unbundled to a local runtime model in support of an API for client side execution of Notes.

FIG. 3 is a high level system illustrating the logic model, data model,and security model of a preferred embodiment of the invention.

FIG. 4 is a diagram illustrating three levels of support for CDdistribution of iNotes.

FIG. 5 is a flow diagram illustrating the four stages of clientdownload.

FIG. 6 illustrates protocol interfaces between server and client, with adownload element shown on the interface boundary.

FIG. 7 and FIG. 8 illustrate the system architecture of the server ofthe preferred embodiment of the invention.

FIG. 9 and FIG. 10 illustrate the system of the client of the preferredembodiment of the invention.

FIG. 11 is a high level diagram of a system for enabling simultaneousreplication of multiple user identities.

FIG. 12 is a high level diagram of a system for automatic issuance ofuser ID's with reuse of previously deployed ID's.

FIG. 13 is a high level diagram of a system for issuing crosscertificates and enabling execution of agents.

FIG. 14 is a diagram illustrating the initial window display of theservice manager of FIG. 9.

FIG. 15 is a diagram illustrating a subscription properties box.

FIG. 16 is a diagram illustrating an offline configuration document.

FIG. 17 is a diagram illustrating the basics page of an offlinesubscription configuration profile document.

FIG. 18 is a diagram illustrating the services page of an offlinesubscription configuration profile document.

FIG. 19 is a diagram illustrating the schedule page of an offlinesubscription configuration profile document.

FIG. 20 is a diagram illustrating the rules page of an offlinesubscription configuration profile document.

FIG. 21 is a diagram illustrating an offline security policy form.

FIG. 22 is a flow diagram of a process for enabling agents for offlineuse.

FIG. 23 is a flow diagram of a process for creating custom file sets.

FIG. 24 is a flow diagram of a process for enabling a web applicationfor offline use.

FIG. 25 is a flow diagram of a process for enabling multiple databasesfor offline use.

FIG. 26 is a flow diagram illustrating site verification for custom codedownload.

BEST MODE FOR CARRYING OUT THE INVENTION Outline

PART I. Models

-   A. On Line Services Model-   B. Local Run Time Model-   C. Client Local Replica Model    PART II. System Architecture-   A. Overview-   B. Protocol Interfaces-   B.1 Protocol Interface 307 and Download Control 146-   B.2 Protocol Interface 308-   B.3 Protocol Interface 313-   B.4 Protocol Interface 317-   C. Server Segment-   C.1 Server 104/HTTP 106-   C.2 DSAPI ID Extensions 108-   C.3 ID Policy DB 114-   C.4 ID Repository DB 111-   C.5 Compressed File Sets 118-128-   C.6 Design Inclusions DB 116-   C.7 Offline Configuration Form 130-   C.8 JScript Files and Web Sync Control 132-134-   C.9 Notes Template Files (.ntf) 157, 115, 159-   C.10 Subscription 136-   C.11 Subscription Main Database 140-   C.12 Offline Configuration Document 138-   C.13 Required and Optional Databases 142-144-   D. Client Segment-   D.1 Subscription-   D.2 Service Manager UI-   D.2.1 Agent Services 226-   D.3 Subscription Properties Box-   D.4 Download Page 230-   D.4.1 Configuration Document 232-   D.4.2 Basics Page-   D.4.3 Services Page-   D.4.4 Schedule Page-   D.4.5 Rules Page-   D.4.6 Offline Security Policy Form-   D.5 Application Page 238 (User Experience)-   D.5.1 Web Control 241-   D.6 Other Components 246-258-   E. Access Control List    PART III. System Operation-   A. Designer Processes-   A.1 Create Offline Subscription Configuration Document-   A.2 Create Download Page-   A.3 Create Offline Security Policy Document-   A.4 Use Domino Off-Line Services Sample Template-   A.5 Create Custom Filesets-   A.6 Use Customize Subform-   A.7 Set Up Multiple Database Applications-   B. Administrator Processes-   B.1 Keep Track of Offline Users-   B.2 Set Up Selective Replication-   B.3 Set Up Agents for Offline Use-   B.4 Auto Issue with ID Reuse-   B.5 Control Access to Database: ACL & SSL-   C. Download Processes-   C.1 Security Context-   C.2 Download File Sets-   C.3 Set Up File Sets-   C.4 Populate Client Subscription-   D. CD Distribution-   E. End User Processes-   E.1 Overview-   E.2 Service Manager Tasks-   E.2.a HTTP-   E.2.b Application Page-   E.2.c Synchronize/Concurrent Replication-   E.2.d Index-   E.2.e Agent-   E.2.f Custom

PART I. Models I.A. On Line Services Model (FIG. 1)

Lotus Notes™ is a workflow, enterprise, and mail-enabled applicationserver and platform.

Referring to FIG. 1, Domino™ 60 is an enhancement to Notes to add webcapabilities. Thus, Domino 60 is a workflow enterprise and mail-enabledweb application server and platform configured with respect to Notes insupport of mobile Notes client 64 and Notes client 68. In the LotusNotes file system, the Domino web server 60 is viewed as a super folder.

QuickPlace™ (not shown) is also an enhancement to Domino. It is aworkflow enterprise and mail-enabled web application server andenvironment for rapid creation of collaborative user communities.QuickPlace is described in U.S. patent application Ser. No. 09/477,473,filed Jan. 4, 2000, now U.S. Pat. No. 6,636,889, issued Oct. 21, 2003,and in several copending applications referenced therein.

Domino Online Services (DOLS) 62 provides an enhancement to the Dominoserver and platform 60 to allow distributed computing and remoteexecution by iNotes client 66 of Domino web applications and distributedcomputing and remote execution of the QuickPlace applications.

Domino online services (DOLS) 62 is used by a web site administrator toconfigure Internet Notes (iNotes) clients to auto download from server60, thus providing iNotes clients with web access using HTTP withvarious browsers, and with local processing and replication.

DOLS 62 provides a layered security model that allows flexibility forcontrolling access to all or part of an application. The highest levelof security is managed through a database access control list (ACL).Further refinements within the security model provide access to specificdocuments, and their views, forms or folders, and include read accesslists, write access lists, form access lists and readers and authorsfields.

I.B. Local Run Time Model (FIG. 2)

Referring to FIG. 2, local run time model 90 provides an API objectmodel allowing third party application access to the data, security, andlogic models of an object-oriented database which retains a multi-levelsecurity model, replication model, and a tree-based indexing model thatcan be stored and updated. Such third party, or user written APIprograms may, in accordance with the preferred embodiment of theinvention, be deployed for client side execution on top of the local runtime model. Run times are variously referred to in the industry as lowerlevel code in a many level or layered programming environment, and codedeployed on top of a layer, such run time, contain instructions that areexecuted on behalf of the deployed code by the lower layer, or run timecode.

Local run time model 90 comprises a hierarchy of models including objectdata store model 92, security model 96, indexing model 98, replicationmodel 94, agent workflow model 99 and mail model 97. In the exemplaryembodiment of FIG. 9, to be described hereafter, a local run time model90 is represented, in part, by elements 208, 210, databases 212, 214,216, service manager 218, and all of the objects in FIG. 9 exceptsubscription 204, including subscription database 202 with ACL 203, andsubscription user ID 206.

In the hierarchy of models of FIG. 2, the design of a parent model is aprerequisite to the design of a child model. The parent/childrelationship is represented by lines 71, 73, 75, 77, 79, 87-89, 91 and93 which point from each parent to its child. The base model of thehierarchy is object data store model 92.

In accordance with the preferred embodiment of the invention, objectdata store model 92 includes for each data element (such as a database)of the object data store model 92, an access control element (such as anaccess control list, or ACL) that specifies the level of access thatusers and servers have to the data element. As is represented by lines87-89, object data store model 92 is a prerequisite model to securitymodel 96, indexing model 98, replication model 94, and agent workflowmodel 99. In the exemplary embodiment of FIG. 9, object data store model92 is represented, in part, by databases 212, 214, and 216 which arecollections of .nsf and .nst files in directory 208, together with theirrespective access control lists 181-183.

Security model 96 is a collection of log in credentials. Security model96 includes ACL protection of databases, and may also provide controlsfor access to documents. In the exemplary embodiment of FIG. 5, securitymodel 96 is represented, in part, by ACLs 181-183, ID files 210 and,subsequent to first log-in to the server, subscription user ID 206. Asrepresented by line 87, object data store model is a prerequisite tosecurity model 87.

Indexing model 98 comprises indexes of two types. First, a hierarchicalindex which is utilized on all databases. The existence of such ahierarchical index is what distinguishes a database from an ordinaryfile. It organizes data inside of a file so that it exhibits databasebehavior. Second, a full text index, which is an optional index used inconnection with a database with use content (such as, in the exemplaryembodiment of FIG. 9, subscription 202) to allow fast location of textstring sequences. Indexing model 98 refers to a search index whichadministrators and database managers may apply to databases and filesin, for example, a Domino domain, and which allows the creation ofviews. Maintaining such an index requires creating a hierarchical and,optionally, a full-text index for each database replica, andperiodically updating them to keep them synchronized with changes to thedatabases. As represented by line 89, objective data store model 92 is aprerequisite to indexing model 98.

Replication model 94 is a series of rules describing how to organize andsynchronize databases. Model 94 refers to database replication, wherereplicated databases are identified by a replica ID and protected by anaccess control element. A replicated data base differs from a copy of adatabase. Although a copy may look the same, it does not carry thereplica ID and cannot replicate with the original database. In theexemplary embodiment of FIG. 9, these rules are collected insynchronization task 220. As is represented by lines 88, 91, and 93,object data store model 92, security model 96, and indexing model 98 areprerequisites to replication model 94.

Lotus indexing and replication models are described in Lotus, ManagingDomino Databases, Release 5, copyright 1985-1999, Lotus DevelopmentCorporation, Cambridge, Mass.

Agent workflow model 99 implements the execution of an agent. Agents canbe contained in any or all databases. The rules by which agents triggeror otherwise execute are defined by an agent model. As is represented bylines 91, 93, and 88, object data store model 92, security model 96, andindexing model 98 are prerequisites to agent workflow model 99. In theexemplary embodiment of FIG. 9, agent component 226 implements theexecution of an agent.

Mail model 97 is the rules for forwarding information from one objectdata store location to another (as distinguished from replication model94, which synchronizes multiple copies of the same information). As isrepresented by line 91, security model 96 is prerequisite to mail model97 in the sense that mail model 97 must provide for verification of theidentity of users accessing mail model 97 with respect to a data object.In the exemplary embodiment of FIG. 9, local mail box 214, supported bysubscription 202 and sync line 113, implements mail model 97.

I.C. Client Local Replica Model (FIGS. 3-5)

Referring to FIG. 3, in accordance with a preferred embodiment of theinvention, DOLS 62 is installed on a Domino server 60. DOLS 62 providesthe server 60 with compressed zip files 70, that contain client Notesprogram dynamic link library modules (DLLs). These DLLs don't get usedon the server, but they are packed on the server for eventualinstallation 76 onto some client machine 74, along with the Web siteinformation referred to as an iNotes client 74. The result is that theclient 74 has a local replica of the Web site, including a replica 76 ofDLLs 70, and .nsf and .ntf databases 78, including agents.

An .nsf database is a file that is the container for data, logic, anddesign elements in an application. If such a database is a designertemplate file that contains the structure for a database, its pages,forms and views, but not documents, then it is an .ntf database.

A file set contains many DLLS, which are program executable objects.Most programs that would be one large .exe file are in present practicebroken into these smaller DLL units. Each DLL is, internally, executablecode. A group includes one .exe file and many .dll files. In the contextof the description of the present invention, reference to the DLLsrefers to executable code that supports a service. In the exemplaryembodiment of FIG. 7, service 126 and locale 128 refer to selfextracting ZIP files, each self extracting file containing manycompressed dynamic linked library (DLL) files. These DLLs arerepresented on server 100 by program directory <pdir> 104 and on client200 by program directory <pdir> 204, which define the locations whereuncompressed DLL files reside. There are also DLL files compressed intofiles referenced by directory specifications 126 and 128.

Agents are stand-alone programs that perform a specific task in one ormore databases, and as databases are under access control library (ACL)security.

The function of DOLS 62 is to set up and maintain replication of theNotes DLL's 70 and 76. Program DLLs 70 is a large collection ofcompressed ZIP files.

Referring to FIG. 4, three levels 82, 84 and 86 of alternativedistribution systems involving use of a client services install medium,such as a CD 72, are presented: level 0 (iNotes compressed) 82, level 1(iNotes installer without data) 84, and level 2 (iNotes installer withdata) 86. While in this embodiment a CD client services model isreferenced, any equivalent, transportable medium may be used—such as aZIP or JAZZ drive, or preload to the hard drive of a computer, and soforth.

Referring to FIG. 5, as will be more fully described hereafter, run timedownload comprises a four stage process, all of which are donecommunicating across a network. These are stage 1: security contextdownload; stage 2: service file sets download; stage 3: uncompress andset up service file sets; and stage 4: populate client subscription,referred to respectively as steps 51-54. Client service install CD level0 (iNotes compressed), however, installs the service file sets of stage2, and run time processing only requires execution of stages 1, 3, and4. Client services install CD level 1 provides for stages 1-3, and runtime processing only requires run time, or network connection, for stage4. Client services install CD level 2 also populates the clientsubscription, and no network connection is required to establish aclient run time environment.

PART II. System Architecture Example II.A. Overview

This invention provides an API for Notes for off-line operation. Apreferred embodiment of this invention provides a web site with customDLLs for delivery with iNotes. The iNotes programs are delivered tooffline clients along with subscriptions. The preferred embodiment ofthis invention also provides server extensions (custom code) fordownload with iNotes. A subscription is, in accordance with an exemplaryembodiment of the invention, a secured (that is, ACL protected) databaseor collection of databases containing off-line web applications withsynchronization schedules and with which an authorized user mayinteract, either on-line or with an off-line instantiation.

This invention also provides web site development tools for use byadministrators. A template file of forms and pages for copy and pasteinto a subscription database allows the downloaded page to look asdescribed and to have correct download values and properties. Severalsubforms form a download page from the web, and specify the services todownload and the replication parameters and configurations.

This invention also allows people to bundle copies of a database on a CDin compressed files, thus deploying iNotes clients that never need totalk to servers. This CD installs a mini web site locally that has thelook and feel, the security, data and program logic of a fullyfunctional web site.

Referring to FIGS. 6-10, the architecture of the preferred embodiment ofthe system of the invention will be described. FIG. 7 and FIG. 8illustrate server segment 100 and FIG. 9 and FIG. 8 illustrate clientsegment 200. FIG. 6 illustrates the protocol interfaces between server100 and client 200, with download element 146 shown on boundary 300between segments 100 and 200.

II.B. Protocol Interfaces (FIG. 6)

Referring to FIGS. 6-10, as will be more fully described hereafter inconnection with the methods of the preferred embodiments of theinvention, interfaces among the component elements of server element 100and client element 200 are represented by line 301 from designinclusions database 116 to offline configuration form 130 and statusJava script 132; line 302 from security policy document 110 to IDrepository database 111; line 303 from offline configuration form 130 toNotes template file (NTF) 157; line 304 from status Java script file 132to NTF 157; line 305 from time zone Java script file 134 to NTF 157;line 307 from server 104 through download element 146 on interface 300download page 230 element download control 234; line 308 from offlineconfiguration document 138 to download page 230; line 309 from downloadpage 230 download control element 234 to HTTP 106; line 311 fromsubscription user ID 206 to synchronization task 220; line 313 fromserver 104 to synchronization task 220; line 315 from HTTP 222 tobrowser 244; line 317 from subscription main database 140 to applicationpage 238 Java script file 240; line 319 from “subscription” 202 toapplication page 238; and line 323 from NTF 157 to subscription maindatabase 140.

II.B.1 Protocol Interface 307 and Download Control 146

Referring to FIG. 6, protocol interface line 307 represents the downloadtransmission channel, which involves processing of an ID context fromDomino server API (DSAPI) ID generator 108 through download control 146to the corresponding download page 230 element 234. Channel 307 inheritsfrom channel 308 the same security context: that is, its secure or notsecure nature. DSAPI 108 looks up or creates IDs for transmission oninterface channel 307, and requires that credentials inferred by accessthrough channel 309 have been qualified to full name. A full name is theuser name according to a certifying authority, and could be a personname plus a certifier group. Example: Carl Kraenzel@Lotus, where theperson name is “Carl Kraenzel” and the certifier group is “Lotus”.

Download control 146 is an implementation of a download plug in ordownload ActiveX, either being used on interface 300 to extend thecapability of browser 244. A Java variation of a browser extender mayalso be provided. Generically, these download elements 146 representdifferent embodiments of equivalent download elements. In the exemplaryembodiments herein described, a plug in download element 146 is used toextend the capabilities of a Netscape browser, and an ActiveX downloadelement 146 is used for a Microsoft Internet Explorer (IE).

II.B.2 Protocol Interface 308

Protocol interface line 308 represents the transfer over HTTP of theoffline configuration document 138 as a web page which is in its clientrendition download page 230. Line 308 thus represents, in thisembodiment, a conversion from Lotus Notes to HTML format, and then toclient 100 as HTTP. This line 308 executes transfer in one of two modes:secure and insecure. In the insecure case (that is, HTTP) the identityof the source 100 cannot be confirmed by the browser, nor is the dataconsidered secure. In the secure case the identity server 100 isverified by client 200, and data transfer is encrypted. This latter modeis commonly called secure sockets, or use of the secured socket layerSSL, and referred to as HTTPS, using standard web browsing definitions.SSL defines an encryption mode between a browser and a web server thatencrypts the information transmitted and identifies the server identity.

II.B.3 Protocol Interface 313

Protocol interface 313 represents a Notes remote procedure call (RPC)interface for responding to a replication request from Sync task 220.This is a request that server 104 replicate and ship down interface 313the subscription main database 140, required databases 142, and anyflagged optional databases 144. When synchronization task 220 runs, itretrieves user name and password from database 216 appropriate to thesubscription 202 at hand and uses those credentials along withsubscription user ID 206 to satisfy and create a Notes RPC to initiate aprotocol connection via line 313.

II.B.4 Protocol Interface 317

Protocol interface 317 provides a secure socket (SSL) interface forloading application page 238 from source subscription main database 140to the client browser 244. Protocol connection 317 has the sameattributes of protocol and authentication as previously described forconnection 308 (HTTP, login, etc.)

II.C. Server Segment (FIG. 7, FIG. 8)

Server segment 100, once rendered fully functional, includes a number ofprogram directory, data, and execution files. These include <pdir>directory element 102, <pdir>/<data> data element 118,<pdir>/<data>/<Domino>/HTML/download data element 122,<pdir>/<data>/Domino/HTML/download data element 122,<pdir>/<data>/Domino/HTML/download/filesets data element 124,<OS>_<SERVICE>.exe, .inf execution elements 126, and <OS>_<LOCALE>.exe,.inf execution element 128.

Server element 104 contains HTTP element 106, and HTTP element 106contains Domino Server API ID extensions 108. Policy ID database 114includes security policy document 110 and download log 112. Otherdatabases include ID repository database 111, design inclusions database116, NTF samples database 115, server mailbox database 127, and standardNotes template file (NTF) database 159. Other elements of server 100include status Java script file 132 including web synchronizationcontrol plug in 133 and web synchronization control ActiveX 135; timezone Java script file 134; Notes template file 157; and subscriptionelement 136. Subscription element 136 includes subscription maindatabase 140, which includes offline configuration document 138, andrequired databases 142 and optional databases 144.

II.C.1 Server 104/HTTP 106

Server 104 is, in this preferred embodiment, a Lotus Domino web server.A Domino server 100 without DOLS would, in these FIG. 7 and FIG. 8,contain only program director <pdir> 102 and server 104 with HTTPelement 106.

II.C.2 DSAPI ID Extensions 108

Domino Server API ID extensions 108 provides an ID context in accordancewith one of three policies, or forms: (1) an ID can be generated onserver 104; (2) an ID can be determined from a database store 111 onserver 100; or (3) an ID can be requested from the user. In cases 1 and2, an ID is shipped down to client 200 as represented by channel 307. Incase 3, the user will be prompted for a file previously received outsidethis system.

II.C.3 ID Policy DB 114

ID policy database 114 is a highly secure collection of security policydocuments 110. It is accessed by DSAPI ID generator 108 in response to auser login request on channel 307 to determine the security domain ofthat user and determine the correct response. Policy documents 110 arecreated and managed by a server administrator. Policy documents 110, inturn, may provide a pointer to ID repository database 111 to enableDSAPI ID extensions 108 to lookup the ID corresponding to the loginrequest. ID policy data base 114 can contain sensitive information suchas passwords and certification IDs that match them. These are toolsnormally safeguarded by administrators as the crown jewels, the keys totheir security kingdom. Therefore ID policy database 114 is implementedwith a strong access control list 161 (that is, only administrators areallowed to access it).

Referring to FIG. 12, ID policy database 114 is shown in a preferredembodiment of the invention as DOLSADMIN NSF 356, with a view providedof certifier document 362 for domain /lotus/cam/ 358 and of certifierdocument 364 for domain /lotus/ibm/ 360.

II.C.4 ID Repository DB 111

ID repository database 111 is a collection of subscription user IDs. Theend result of an interface 307 request is a user ID, which may,depending upon the user domain from security policy document 110, bedetermined from database 111 by DSAPI ID extensions 108 for storage in<name space> directory of element 204.

In accordance with a further embodiment of the invention, offlinemanagement and replication with respect to a plurality of useridentities is provided in the context of a master password protectedpassword database. In accordance with this exemplary embodiment of theinvention, local replications of a subscription are filtered by user IDand password.

Referring to FIG. 11, on client side, master user ID and optional unlockpassword 340 encrypts and protects password database 336. Passworddatabase is a repository for stored passwords 337-338. These areoptionally stored by users and, when stored, provide access tosubscriptions 341, 343, 345, respectively. Subscription 341 includes auser file 342 containing an unlock password for subscription A NSFs 330.Subscription 343 includes a user file 344 containing an unlock passwordfor subscription B NSFs 332. Subscription 345 includes a user file 348containing an unlock password for subscription C NSFs 334. Master userpassword 340 is set from iNotes client options menu 266, as will bedescribed with respect to FIG. 14. Notes provides three levels ofencryption, simple, medium and strong. Password database 336 ispreferably encrypted with strong encryption.

Password database 336 is thus configured to protect a plurality of usernames and password pairs 342, 344 that may be used in backgroundreplications of a plurality of subscriptions 341, 343, 345. Of thesesubscriptions corresponds to a server subscription 136, clientsubscription 202 pair in FIG. 8 and FIG. 9 and have a user name 206tightly associated with them).

In the event that password database does not include an entry, say entry339, with a stored password for subscription 345, then the user isprompted for the password upon attempting access to subscription, saysubscription 345, to verify against password C 348. Under thesecircumstances (without a password PWC 339 in database 336), unattendedaccess for, for example, replication of subscription C 334 NSFs is notallowed.

II.C.5 Compressed File Sets 118-128 and Protocol Interface 309

File sets 118-128 contain the program logic required to support a clientapplication. The .inf files describe the larger .exe files. These filesare transferred to client 200, in one embodiment of the invention, overline 309, which in today's technology may be a slower, networkconnection. In another embodiment of the invention, these files 118-128are loaded to a CD for transfer to the client machine.

II.C.6 Design Inclusions DB 116

Design inclusions database, or resource template file 116 is, in thepreferred embodiment, a Lotus Notes template (.ntf) file. This templatefile 116 is used in connection with an instance of standard .ntf file159, as is represented by line 310, to produce a subscription maindatabase template .ntf 157.

II.C.7 Offline Configuration Form 130

Offline configuration form 130 is a file containing design elements fordescribing in template file .ntf 157 the design of database 140.

II.C.8 JScript Files and Web Sync Control 132-134

A Java Script (jscript) file is used to create interactive applicationsin which most of the information processing is done on the client side,thus increasing the efficiency of the application by reducing the amountof traffic between client and server. A component of status Java scriptfile 132 is web sync control 133, which is provided for synchronizationwith browser 244. Web sync control may be a plug in adapted for aNetscape browser 244, or an ActiveX for a Microsoft IE browser 244. Itsclient side rendition is web control 241.

II.C.9 Notes Template Files (.ntf) 157, 115, 159

Standard .ntf file 159 provides an initial template file design formodification and augmentation into Notes template file 157. File 157 isan augmented Notes template file initialized from file 159 and intowhich is stored the design of subscription main database 140 asdetermined or copied from offline configuration form 130, status Javascript 132 and time zone Java script 134. NTF sample database 115provides examples of augmented templates for a developer to study anduse when producing a new, modified template 157.

II.C.10 Subscription 136

Pursuant to the subscription model of the preferred embodiment of theinvention, and as implemented in the exemplary embodiment involvingiNotes and DOLS, a subscription is a group of databases organized underone set of rules with one login identity to one server. Such asubscription may include several .nsf databases that are retrieved froma single path, for example, W3.Lotus.com/HR. A different subscription,to extend the example, may be a group of several nsf databases from adifferent path, say W3.IBM.com/blue pages.

In accordance with the preferred embodiment of the invention,subscription 136 includes subscription main database 140, requireddatabases 142, and optional databases 144. These databases represent acollection of off-line applications with which authorized users mayinteract at client 100.

II.C.11 Subscription Main Database 140

Subscription main database 140 is a database selected by theadministrator as the main database for this subscription, the behaviorof which is governed by forms, views and agents specified using templatefile 157.

Subscription main database 140 has an offline configuration document138, described below, and an access control list 167 which requiresthrough regular Domino processes that the user log in over an HTTP 307connection before the download page 230 can render.

II.C.12 Offline Configuration Document 138

Configuration document 138 includes the names and locations of requireddatabases 142 and optional databases 144, default configuration settingsincluding properties of the subscription 136, the file sets 124 neededfor offline execution, the default scheduling properties forsynchronization which effect execution of service manager 218 andsynchronization task 220 in the end user usage scenarios (yet to bediscussed), and the look and feel of download page 230 when it displaysin a browser 244. Many or all of these properties could be preset aspart of the design found in template file 157.

Offline configuration document 138 will be further described hereafterin connection with its client side rendition 232.

II.C.13 Required and Optional Databases 142-144

Required and optional databases 142-144 are databases selected by theadministrator for this subscription 136, the behavior of which isgoverned by forms, views and agents specified using template file 159.

II.D. Client Segment (FIG. 2, FIG. 9, FIG. 10)

Client 200 includes directories <pdir>/<data>/<namespace> 204 into whichsubscription user identifier 206 is stored, subscription ACLs 203, andfile directory <pdir>/<data>/ 208 into which local services ID 210 isstored; databases local names.nsf 212, local mail.box 214, andpassword.db 216; service manager 218, including synchronization task220, HTTP 222, index 224, agent 226 and custom 228; browser 244,including download page 230 and application page 244; subscription linksdesktop 252, start menu 256, driver tray 258 and uninstall 246. Downloadpage 230 includes parameters from configuration document 232 (which isthe client side 200 rendition of offline configuration document 138),download element 234 (the client side rendition of download control 146for ActiveX or plug in, as the case may be). Application page 238includes Java script status 240 including client side rendition 241 ofweb control plug in or ActiveX 133 and the client side rendition 242 oftime zone Java script 134.

Each database includes an associated access control list (ACL) 160-169,181-183, respectively.

II.D.1 Subscription 202

Subscription database 202 is the offline rendition of subscription 136.It includes a Domino Web application, its related databases, and thesettings specified in the service manager 218.

II.D.2 Service Manager UI 218 (FIG. 14)

Lotus iNotes Sync Manager represents an exemplary embodiment of servicemanager 218. Users automatically install Lotus iNotes Sync Manager 218on local machine 200 when they download a Domino application enabled foroffline use, or install a CD prepared in accordance with the presentinvention. iNotes Sync Manager 218, the end-user component of DominoOff-Line Services, enables the user to manage and maintain offlinesubscriptions 202 to Domino Web applications.

The service manager 218 UI is provided with an open on line/open offline button in the sense of a toggling selection control forsubscriptions, which are off line web applications 202, 136 withschedules.

Referring to FIG. 14, the initial window 270 of service manager 218, isillustrated. The user interface for service manager 218 includes thefollowing components:

-   -   Menu bar 261    -   Button bar 262    -   Subscription window 263 with a list of subscriptions 202 and        detailed information on each    -   Message bar below the subscription window

In addition, both the online and offline applications may have Webcontrols 268. If the offline application has been installed with a Webcontrol, upon clicking Go Offline or Go Online control 268, a pop-upmenu displays a list of actions.

Menu Bar 261

The following menus appear on the Service manager 218 menu bar 261:

File 265

Options 266

Help 267

File menu 265 includes the following choices:

-   -   Properties, which displays a subscription properties box for the        subscription 202 selected by highlighting in subscription window        263.    -   Delete, which prompts for confirmation on whether the selected        subscription should be deleted. If yes is selected, local data        and files associated with the selected subscription 202 are        deleted.    -   Exit, which exits from Service manager 218 and shuts down all        its subprocesses, including scheduled synchronizations. When        service manager 218 is restarted, synchronization schedules are        also restarted.        Options menu 266 includes the following choices:    -   Auto-start—sets a Windows registry key so that service manager        218 starts in the background when the user logs on to the        operating system. This ensures that any scheduled        synchronizations occur. By default, Auto-start is checked. To        disable Auto-start, uncheck it.    -   Proxy Settings—displays the Proxy Settings dialog box. Some        settings may already be specified, based on the settings of the        default browser. By selecting “Use a proxy server to        synchronize” a user may set the type, address, and port number        of the proxy server to use to connect to the Internet.    -   Master Password—sets or changes the password used to log on to        Service manager 218.    -   Encoding—specifies the character set for creating or editing        documents. When highlighted, the encoding option displays a list        of available character sets for selection.        Help menu 267 provides access to online help for service manager        218, customer support, and version and copyright information.

Button bar 262 provides buttons controlling actions with respect to asubscription 202 selected by highlighting in subscription window 263.Each button may be represented by an icon (not shown) and/or by text (asshown).

Start sync 271 immediately starts the synchronization process for theselected subscription. Only disabled or idle subscriptions may beselected.

Stop sync 272 stops the synchronization process for the selectedsubscription. Only active synchronizations may be selected.

Sync detail 273 displays details about synchronization. A dialog boxdisplays information on synchronization status and a progress bar onsynchronization completion. There is also a Stop Sync button in thisdialog box. This button 273 can only be selected during asynchronization. When the synchronization is done, clicking a closebutton exits from the dialog box.

Properties 274 displays the subscription properties box 460. This isused to view the selected subscription, as further described inconnection with FIG. 15.

Open online 275 launches the default browser 244 and opens the startingURL of the currently selected subscription 136. The user can theninteract with the online version of the subscription. The online 136 andoffline 202 versions of the subscription may differ, especially if notrecently synchronized.

Open offline 276 launches the default browser 244 and opens the startingURL of the offline version 202 of the subscription selected insubscription window 263. The user can then interact with the offlineversion 202 of the subscription. The online and offline versions of thesubscription may differ, especially if they have not recently beensynchronized.

Enable 277 enables the synchronization schedule for the selectedsubscription.

Disable 278 disables the synchronization schedule for the selectedsubscription.

Delete 279 prompts for confirmation and, if confirmed, deletes selectedoffline subscription by deleting local data and files associated withthe selected subscription.

QuickPlace didn't have a user interface (UI) for synchronization. Thisinvention provides an iNotes synchronization manager, a utility having atool bar with lists of subscriptions, including provision for server login, scheduled replication, and access to data bases. This enables aplurality of replications to run simultaneously. The advantages ofsimultaneous operations is increased performance in certain situations,and it is required if different ID's are allowed to run at differentschedules. Thus, it is much more than the replicator tab on Notes.

D.2.1 Agent Services 226

Referring to FIG. 13, system components exercised in qualifying signedagents 560, 561 from a plurality of servers 100, 101 for execution assigned agents 562, 563 at a client 200 are illustrated. Server directors350, 351 include certificates 564, 565, cross certificates 566, 567,downloadable cross certificates 568, 569, restricted group lists 570,571 and unrestricted group lists 573, 574. Client 200 includes clientside rendition 202, 562 of application 136 with signed agent(s) 560, andclient side rendition 201, 563 of server application 137 with signedagent(s) 561; and client directory 212 with downloadable crosscertificates 576, unionized restricted group list 572 and unionizedunrestricted group list 575. A signature is a name plus an electroniccertificate. Group lists 572, 575 include names, not completesignatures. Unionized group lists include the union of names 570, 571and 573, 574 from all servers, in this example two servers 100 and 101are shown, but there may be more.

An unrestricted agent is generally designated as such because it neednot do anything particularly risky, such as change the system clock oradd/delete data files.

The operation of the system components illustrated in FIG. 13 will bedescribed hereafter in connection with FIG. 22.

II.D.3 Subscription Properties Box (FIG. 15)

Referring to FIG. 15, subscription properties box 460, available throughservice manager 218, may be used to view and change security andsynchronization setting for a subscription selected in subscriptionwindow 263. A subscription properties box 460 includes subscription tab461, schedule tab 462, security tab 463, and synchronize options tab464.

To display subscription properties box 460, a user does one thefollowing:

-   -   Highlight a subscription in the subscription window 263 and        click the properties button 274    -   Highlight a subscription in the subscription window 263 and        choose File—Properties    -   Double-click a subscription in the subscription window 263    -   Right-click a subscription in the subscription window 263 and        choose the properties subscription tab

Subscription tab 461 is used to view status information and to enter atitle for the subscription. It includes the following fields.

-   -   Title 471, which is the title given the subscription. This title        appears in the list of subscriptions in the subscription status        window 263. It can be change by entering a new title.    -   Size 472, which lists the size of offline subscription 202 in        megabytes.    -   URL 473, which specifies the Web address of the online        application 136.    -   Current sync state 474, which lists one of the following status        states for synchronization:        -   Active—a synchronization is in progress        -   Idle—the subscription is idle now but the next scheduled            synchronization is listed        -   Disabled—the subscription is not currently scheduled for any            synchronizations    -   Last sync time 475, which displays the date and time of the most        recent synchronization.    -   Last sync status 476, which list details about the most recent        synchronization, including the number of errors and the number        of documents sent and received.    -   Next sync time 477, which displays the date and time of the next        synchronization.

Schedule tab 462 is used to specify dates and times for synchronizationbetween an offline subscription 202 and the online Domino Webapplication 136. It includes the following fields.

-   -   Day 481, which specifies the day(s) synchronizations are to        occur. (The synchronizations occur at the time of the day        specified in the Time field 482.) Daily, weekly (day or days of        the week), or monthly (day or days of the month) can be        specified.    -   Time 472, which specifies the time of day when synchronization        is to start. The user can specify that synchronization be        repeated during the day at certain intervals (for example, every        15 minutes or every hour) and also specify a time for the        repeating synchronizations to stop.    -   Disable schedule 483, which disables synchronization.        The schedule the user specifies at this tab 462 overrides any        default schedule that the administrator may have specified for        the online Domino Web application.

Security tab 463 is used to verify the user name and to enter a passwordfor the currently selected subscription. It includes the followingfields.

-   -   User name 485, which displays the user name the user enters to        begin the synchronization of a subscription.    -   Remember password 486, which is used to enter the password to        begin the synchronization of the subscription.        This password is set by the administrator, and cannot be changed        off line. This password is the same as the one used to access        the online Domino Web application. A box next to this field 486        may be checked so that the password need not be entered in each        time synchronization is started.

Sync options tab 464 is used to specify synchronization settings. Itincludes the following fields.

-   -   Subscription section (“section” is a term familiar to users of        web browsers, and is equivalent in Notes lexicon to “database”)        settings 491, which lists the subscription, including both        required and optional sections available on the server for        offline use. A section in the Section Settings window may be        highlighted to change its settings.    -   Limit section size 492, which sets a download limit of [number]        MB to the size of the section selected in the Subscription        Section Settings window 263.    -   Sync back limit 493, which limits download to only documents        saved [number] days back—this box is checked to choose a number        of days beyond which not to synchronize any documents that have        been saved. This setting applies to the section selected in the        Subscription Section Settings window 263. Checking this box        speeds up synchronization.    -   Disable 494, which is checked to disable synchronization of an        optional section selected in the Subscription Section Settings        window 263. A required section may not be selected.    -   Size limit 495, which limits total size to [number] MB for the        subscriptions in the sections listed in the Subscription Section        Settings window 263.    -   Auto download 496, which may be selected to automatically        download any new optional files on servers 100. This box is        checked to find new available files on the server and bring them        off line. The files are then listed under optional sections in        the subscription section settings window 263.    -   Send pending 497, which may be selected to send pending emails        before shutdown. This box 497 is checked to send any pending        outgoing mail messages (such as in a workflow application)        before closing or exiting from Service manager 218.    -   Shutdown sync 498, which may be selected to synchronize new or        modified documents before shutdown. This box 498 is checked to        synchronize new or modified documents before closing or exiting        from service manager 218.    -   Sync done notice 499, which may be selected to notify when        synchronization is completed. This box 499 is checked to receive        a message each time the synchronization process finishes. If        warnings are displayed during the synchronization process,        selecting this option displays a message box for each warning.        If not checked, a related database may not finish synchronizing        because it reached the size limit set for it. If check, the user        will be notified that the database reached its limit.

The Subscription window 263 of service manager 218 contains thefollowing information about each subscription:

-   -   Subscription title 280, which is the name given the offline        subscription or the title assigned by the administrator.    -   Subscription URL 281, which is the full URL of the online        subscription 136.    -   Size 282, which is the size in megabytes of the offline        subscription 202.    -   Last synchronization time 283, which is the day, date, and time        that the subscription was last synchronized. The following icons        may also appear:        -   An icon representation that new or modified documents have            been downloaded offline. Once the offline subscription has            been opened, this icon disappears.        -   An icon representation that the subscription was not            configured properly, the last synchronization occurred over            30 days ago, or a synchronization has never occurred.        -   If no icon appears, the offline subscription contains no new            or modified documents.    -   Synchronization status 284, which displays the current        synchronization status of the subscription:        -   Active—a synchronization is in progress        -   Idle—the subscription is idle now, but the next scheduled            synchronization is listed        -   Disabled—the subscription is not currently scheduled for any            synchronizations        -   In addition, the end status of the most recent            synchronization is displayed. If a problem occurred during            the last synchronization, an error message may be displayed            here as well.

During synchronization, a status dialog box may be viewed. This may bedone after synchronization has begun for a subscription by clicking theSync Detail button or icon 473 in tool bar 262. A dialog box appearswith information on synchronization status (the same information thatappears in the status bar during synchronization) and a progress bar onsynchronization completion. There is also a Stop Sync button in thisstatus dialog box. When the synchronization is done, a close button maybe clicked to exit from the dialog box.

Message bar 264 for Service manager 218 is located below thesubscription window 263 and shows the current status of the subscriptionhighlighted in the Subscription window as well as status messages forservice manager 218 (Lotus iNotes Sync Manager). For example, it mayshow when the next synchronization is scheduled for a subscription orwhen Service manager 218 was started.

To delete a subscription 202, the subscription is highlighted in servicemanager 218 and the delete button 279 clicked.

II.D.4 Download Page 230

A download page is the page 230 that displays to an end user during thedownload of a subscription 202 to local machine 200. This page 230 maycontain information such as instructions, company graphics, warnings, ortips for the end user.

The fields for controlling the download page are at the bottom of theOffline Subscription Configuration profile document 138. The defaultselection is “Display default download page contents.” This selectioncontains default text and graphics.

II.D.4.1 Configuration Document 232 (FIG. 16)

Referring to FIG. 10 and FIG. 16, configuration document 232 is theclient side 200 rendition of offline configuration document 138 fromsubscription main database 140 on the server side 100.

The Offline Subscription Configuration profile document 138, 232contains the following tabbed pages. Many of the fields have defaultvalues which can be changed.

-   -   Basics tab 380    -   Services tab 384    -   Schedule tab 390    -   Rules tab 400

In addition to tabbed pages, there is a download page field 409 at thebottom of the profile document. The download page 409 displays the textand graphics that end users see during the download of a subscription.

II.D.4.2 Basics Page 380 (FIG. 17)

Referring to FIG. 17, the basics page 380 of the Offline SubscriptionConfiguration profile document 138, 232 contains the field “Subscriptiontitle” 382. This is a computed field that contains the name of thesubscription (database) 202. This name also appears in the Subscriptionwindow of Lotus iNotes Sync Manager 218.

II.D.4.3 Services Page 384 (FIG. 18)

Referring to FIG. 18, the services page 384 of the Offline SubscriptionConfiguration profile document 138, 232 contains Domino services toinstall offline field 386 and customer services to install offline 388.Domino services to install offline which may be selected include basicservices 421 (always selected), full text indexing 422, LotusScript andunscheduled agents 423, Java classes and applets 424, and customservices 425. If custom services 425 is selected, custom services toinstall offline field 388 appears.

II.D.4.4 Schedule Page 390 (FIG. 19)

Referring to FIG. 19, the schedule page 390 of the Offline SubscriptionConfiguration profile document 138, 232 contains the schedule type field392, frequency field 394, limitations field 396, and exceptions field398, fields that can be preset for the end user. The end user canoverride most of these fields from within the Subscription Propertiesbox of Lotus iNotes Sync Manager 218.

II.D.4.5 Rules Page 400 (FIG. 20)

Referring to FIG. 20, the rules page 400 of the Offline SubscriptionConfiguration profile document 138, 232 contains file rule field 402,sync options date filtering field 404, sync operations halt conditionsfield 406, and sync options optional actions field 408.

II.D.4.6 Offline Security Policy Form 410 (FIG. 21)

Referring to FIG. 21, an Offline Security Policy document 110 is createdby an administrator for Domino applications enabled for offline use. InDomino Administrator, DOLADMIN.NSF is opened and Create - DOLS OfflineSecurity chosen. The Offline Security Policy form 410 appears,containing basics tab 412, ID deployment policy tab 414, automatic tab416 and lookup tab 418, with several fields for entering securityspecifications. To view all Offline Security Policy documents 110, anOffline Security button in DOLADMIN.NSF may be clicked.

II.D.5 Application Page 238 (User Experience)

Application page 238 provides, together with service manager 218, theuser experience. The end user experience may utilize application page238 in an offline mode as is represented by line 319 to experiencesubscription 202, or in an online mode as is represented by line 317 toexperience subscription 136.

II.D.5.1 Web Control 241

Web sync control 241 is a displayed instance of web sync control 133.When activated from a request protocol connection 317, or an onlinedisplay, web control 241 displays an indicator showing the user that heis looking at an online version, and a default indicator displayed forselecting “go offline”. If application page 238 is being rendered in anoffline context as represented by line 319, then the default selectionindicator would display “go online”. The indicator is in the userinterface of status JScript 241, or time zone JScript 242. A downloadcontrol element 234 renders the user interface as a subregion of a webpage, where within the page it displays is a designers choice.

II.D.6 Other Components 246-258

Subscription link desktop 252, start menu 256, and driver tray 258provide alternative ways for launching service manager 218. That is,service manager 218 can be launched and display its user interface (UI)270 by desktop links 252, by links found in Windows™ start window 256,or by clicking on its minimized icon which appears in Windows drivertray 258.

Uninstall 246 is, which is found in the Windows start menu(Start—Programs—Lotus iNotes—Uninstall Lotus iNotes), may be used by theuser to uninstall all client side software and data installed by thesystem (service manager 218 and all its subscriptions).

II.E. Access Control Lists

Every database has an access control list (ACL) that specifies the levelof access that users and servers have to the database. In the case ofusers, the ACL determine the tasks that users can perform in a database.In the case of servers, the ACL determine what information within thedatabase the servers can replicate. For each user name, server name, orgroup name in an ACL, the administrator can specify an access level,access level privileges, user type, and roles. In accordance with thepreferred embodiment of the invention, access control lists on databasesreplicated to client 200 impose on users of those databases identicalaccess authority as on the databases at server 100 from which they werereplicated. Data elements protected by an ACL include, but are notlimited to, documents, fields, agents, replication formulas, subforms,pages, framesets, folders, access control lists, paragraphs, views andextended database properties therein. The access control elementincludes lists of names of users and servers authorized to access thedata element, together with their roles and authorization levels. Accesscontrol entries assigned to users determine the tasks that can beperformed in the database, and those assigned to servers determine whatinformation within the database the server can replicate.

PART III. System Operation

In accordance with the preferred embodiment of the invention, DominoOff-Line Services (DOLS) provides a way for browser users to utilizeDomino Web applications offline. Using a browser, the user takes anapplication offline, makes changes, and synchronizes those changes withthe online application. Notes software, available from Lotus DevelopmentCorporation, works with Domino to provide a distributed client/serverdatabase application to let users organize, process, track, and useinformation to suit their individual needs. Notes/Domino consolidate thetools needed to effectively communicate and collaborate in anorganization by providing, inter alia, email, group discussion,workflow, scheduling, document management and many other functions.Domino databases are built on three basic concepts: documents, views andforms. Documents are collections of data items which can be retrieved asa set. Views are the ways of accessing the indices or summaries ofdocuments stored in a database while forms are templates for accessingand displaying documents.

To enable a Domino Web application for offline use, the Web sitedeveloper and the Web site administrator first configure and set up theapplication. The developer and the administrator perform such tasks assetting up the server, setting up security, copying new design elementsinto the application, and specifying synchronization settings.

Once the application is enabled, the end user opens the online Webapplication. By clicking on a control or an icon, the user downloads theapplication to the local machine. The first time an application isdownloaded, Lotus iNotes™ Sync Manager, a utility for managing theoffline application, is installed on the user machine (client). Using abrowser, the end user may change the offline application and thensynchronize the change with the online Domino Web application.

The offline access provides an end user with just about all thecapabilities of the online Web application. DOLS supportsauthentication, composing, editing, deleting, sorting, categorizing,full text searches, Java applets, and workflow. DOLS also supports fulldata replication, retains application logic, and supports the full Notessecurity model.

The operation of a preferred embodiment of the system presented in FIGS.6-10 will be described hereafter in the context of four experiencescenarios (processes or methods), as follows: the designer scenario, theadministrator scenario, the download scenario and the end user scenario.

III.A. Designer Processes

The Domino Web site developer copies design elements into theapplication being enabled for offline use and then specifies defaultconfiguration settings for the offline subscription.

The developer first opens in Notes the DOLS resource template (alsoreferred to as design inclusions database, or DOLRES.NTF 116), whichcontains all design elements needed to enable a Web application foroffline use, and then opens the same template in Domino Designer andcopies design elements from the template to the Web application beingenabled for offline use. The design elements copied include severalpages, a form, an agent, and several subforms. One of the designelements is a Web control page that allows end users to take anapplication offline by clicking a “Go Offline” control.

The developer then closes Domino Designer, opens the Domino applicationin the Notes client, and specifies default settings by editing theOffline Subscription Configuration profile document.

Referring primarily to FIG. 7 and FIG. 8, the designer process startswith design inclusions database 116. The objective of the designerprocess is to produce a subscription Notes template file (.ntf) 157,starting from resource template file 116 and an existing design,typically something like a standard .ntf file 159. The act of augmentingdesign resource template file 116 is represented by line 301, which isaccomplished by cutting and pasting design inclusions found in file 116;that is, by copying them across into an instance of a standard .ntf file159 to produce a subscription main database template .ntf 157. Thedesign elements for describing in template file .ntf 157 the design ofdatabase 140 include offline configuration form 130, status Java script132 and time zone Java script 134.

Java script 134 is optional to the system, and when used gives anexperience augmentation for end users. Status Java script 132 is alsotechnically optional, but when not used greatly reduces end userexperience by eliminating Java script status 240. Absolutely essentialis offline configuration form 130.

An augmented template file 157 is produced by copying into and then froma standard .ntf file 159 status JScript 132, time zone JScript 134, andoffline configuration document 138. This is the minimum requiredconfiguration of system for the designer scenario. The designer canoptionally preset the offline configuration settings by modifying form130 after it has been stored in template file 157. These presets wouldthen be available to the administration experience to be describedhereafter.

III.A.1 Create Offline Subscription Configuration Document

The Web site developer initially creates an Offline SubscriptionConfiguration profile document 138 for each Domino application beingenabled for offline use. An application, even if it includes multipledatabases, has only one profile document.

Using Domino Designer, the developer copies the “Edit OfflineConfiguration” agent into the Domino application being enabled foroffline use. In Notes, the developer then fills in the OfflineSubscription Configuration profile document 138 by choosing Actions -Edit Offline Configuration. Once the developer finishes the profiledocument 138, the administrator may choose to override some of thedefault settings.

Referring to FIG. 19, in operation, under schedule tab 390, selectingschedule type 392 as daily 430 enables specification of the time of dayfor synchronization to occur; as weekly 431 enables selection of thedays; as monthly 432 enables selection of the day of the month; asday(s) of the week 433 appears only when weekly 431 is selected as thetype, and enables selection of the day(s) of the week on whichsynchronization is to occur; as day of the month 434 appears only whenmonthly 432 is selected as the type, and enables specification of theday of the month on which synchronization is to occur; as start time 435enables specification of a time of the day when synchronization is tooccur on days scheduled for synchronization.

Selecting frequency 394 as repeating schedule 436 schedules replicationto repeat at specified intervals after the initial start time; and asinterval 437 enables specification of the time between repeatingsynchronization operations.

Selecting limitations 396 enables specification of the time 438 at whichsynchronization is to stop.

Selecting recurrence exceptions 398 as schedule disable 439 results indisabling of synchronization after once. The schedule remains disableduntil the end user chooses to enable it.

Referring to FIG. 20, in operation, selecting file rule field 402 ofrequired files to replicate 440 enables specification of the list ofdatabases 142 that must always be present offline for this subscription136 to function as intended. The path and file name of each requireddatabase is specified, and may be selected by clicking a browse buttonto choose databases. Databases selected must be in the Domino datadirectory or a subdirectory below the Data directory. For example, ifthere exists a subdirectory called Dev below the data directory and itcontains a database called mynsf.nsf, Dev\mynsf.nsf is entered.Specifying more than one required file 142 or optional file 144, may bedone by appropriate use of directory names and wildcards.

Selecting file rule 402 optional files to replicate 441 enablesspecification of a list of optional databases or directories 144 thatcan be part of this subscription 136. The path and file name of optionaldatabases to be downloaded as part of this same subscription 136 areentered. For example, in addition to the required database(s) 142, itmay be desired to download a related help database or an archiveddiscussion database, and these may be selected by clicking a browsebutton and then choosing from among the databases displayed in theDomino data directory or a subdirectory below the data directory. Forexample, Dev\my2nsf.nsf may be selected. If only Dev is selected, thenevery database in the Dev directory is downloaded. Multiple directoriesmay be specified.

Selecting file rule 402 automatically replicate new DBs 442 results inautomatically downloading and synchronizing new (or newly detected)databases from the server. For example, a selected optional database 144may itself create new databases. If this occurs, then the new databasesare automatically downloaded and synchronized.

Selecting sync options date filtering 404 enables specification of apreset number of days 443 beyond which the user is not to synchronizeany modified documents. For example, if thirty days is specified, onlydocuments created or modified in the last thirty days will synchronize.The end user can override this setting 443.

Selecting sync options halt conditions limit database size 406 enablesspecifying a number 444 to control the maximum size in megabytes of theoffline database. When the database gets bigger than the size 444specified, synchronization is automatically halted. The end user canoverride this setting.

Selecting subscription size limit 445 enables specifying a number tocontrol the maximum size of the entire offline subscription. When thesubscription gets bigger than the size 445 specified, synchronization isautomatically halted. The end user can override this setting.

Selecting sync options optional actions 408 of notify on completion ofsync 446, results in the end user receiving a message whensynchronization is complete. The end user can override this setting. Ifwarnings are displayed during the synchronization process, selectingthis option displays a message box for each warning.

Selecting route mail on client shutdown 447 results in pending outgoingmail messages being sent before the user exits from Lotus iNotes SyncManager 218. The end user can override this setting.

Selecting replicate on client shutdown 448 results in synchronizationoccurring before the user exits from Lotus iNotes Sync Manager 218. Theend user can override this setting.

III.A.2 Create Download Page

The default download page 230 is from the “DOLS Download Instructions”subform. Alternatively, a download page for each subscription may bemade in lieu of the default page. To create download page, select“Display only the custom contents below” from the Offline SubscriptionConfiguration profile document 138. A rich text field appears to createa download page 230 specifically for this subscription 136. In additionto text, HTML and images may be added this field.

III.A.3 Create Offline Security Policy Document

Selecting basics tab 412 brings up security domain field 450 forspecifying the domain that affects the security of this subscription.For example: /CAM/Lotus or /Lotus. The default security behavior is toprompt end users to provide ID files when going off line. That defaultcan be explicitly controlled and overridden for given security domainsby setting an ID policy here that differs from the default.

Selecting ID deployment policy tab 414 brings up fields 451-543. IDdeployment policy 414 selection field 451, prompt for ID duringdownload, is the default policy and results in the user being promptedfor a user ID. Such IDs must first have been distributed to end users.

Selecting automatically generate user IDs 452 results in generation of auser ID automatically using a certifier in the offline security policydocument 110. If this option 452 is selected, the Automatic tab 416appears. At this tab, a certifier ID 454 may be attached, password 455set, and the ID expiration date 456 set.

Selecting use directory lookup 453 brings up use lookup tab 418 for IDlookup and causes a search for existing IDs in the Domino Directory 350(formerly called the Names and Address book, and referred to as the IDrepository database 111 in FIG. 7).

Automatic tab 416 appears only when automatically generate user IDs 452is selected. Certifier ID field 454 is a rich text field (File—Attach)used to attach a Certifier ID file which must match the Security domainfield 450 specified at the basics tab 412 of this document. If theCertifier ID file 454 and the Security domain 450 fields do not match,end users will experience access errors because the IDs that wereautomatically issued to them will have canonical names that do not matchthe access control lists (ACLs).

Password for certifier ID field 455 is used to record the certifier IDpassword. Stored passwords are protected by appropriately restrictingthe access control list (ACL) of this database. The password entered bya user, which is case-sensitive, must be correct or the installationwill not proceed.

Expiration date field 456 is used to set the expiration date for anyNotes IDs generated automatically.

Lookup tab 418 appears only when use directory lookup 453 is selected.Address book for lookup field 457 is then used specify the relative pathof the Domino Directory 350 (a.k.a. Names and Address book 111) fromwhich to pull IDs. The target database must have standard DominoDirectory views and documents with IDs attached to the person documents.A browse button may be clicked to search for a Domino Directory.

III.A.4 Use Domino Off-Line Services Sample Template

Domino Off-Line Services includes the following template as an example115 of one that has been enabled for offline use:

-   -   Web discussion template—doldiscsw5O.ntf

This sample template includes the required design elements. An OfflineSubscription Configuration profile document 138 (Actions—Edit OfflineConfiguration) is created for each new database 140 created from thistemplate 115. This is included as an example of a template that has beenenabled for offline use.

III.A.5 Create Custom Filesets

Selecting Custom services to install offline 388 enables specificationof custom filesets 426. These specify the custom fileset(s) 124 to bedownloaded when the end user installs a subscription. For example:MYCUSTOM. In these specifications, multiple filesets are separated withcommas.

Each custom fileset is downloaded and then unpacked. For Windowsplatforms, the downloader looks for two files in the Filesets directory,each with the prefix N, including a self previously created extracting.exe (N MYCUSTOM.EXE), which is unpacked when the end user downloads,and an INF file (MYCUSTOM.INF) which contains information needed duringthe download. Files to be execute when the custom fileset is unpackedmay be specified, as can arguments within the files to be executed.

Creating custom filesets, to be described hereafter, provides moreinformation on custom filesets and on creating INF files.

Referring to FIG. 23, custom filesets within filesets 124 can be createdthat contain files that are unpacked when the end user downloads theapplication. Domino Off-Line Services 62 includes a utility to helpcreate and set up a custom fileset (the client instantiation of which iscustom 228), which is done as follows:

In step 465, a self-extracting executable (.exe) file is created. This.exe file contains the files to be downloaded to the user's machine 200.All the necessary files need to be compressed into one self-extracting.exe file.

In step 466, the .exe file is copied a directory on the Domino server.

In step 467, an .inf file is created. The INF file is associated withthe .exe file, has the same file name (except for the suffix), is in thesame directory, and contains information needed during the download.

In step 468, he name of the custom service file is entered in the“Custom Services to install offline” field. This field is located on theServices page of the Offline Subscription Configuration profile document138.

In step 469, these files are downloaded and unpacked on the end user'smachine 200 in the iNotes client program directory 260. Then, setup.exe,one of the unpacked files, runs on the user's machine from the iNotesclient program directory 260.

III.A.6 Use Customize Subform

The DOLS Customize subform provides a way to override default values inthe fields of other subforms. Identity icons can be attached into thissubform, as described hereafter. In the exemplary embodiment of FIG. 8,the DOLS customize subform represents that part of offline configurationform 130 which may be customized.

After the DOLS Customize subform has been copied into the Dominoapplication, it can be edited in Domino Designer. Because this subformloads after all other subforms, events such as PostOpen can be used tooverride the default values for other fields. Fields validation formulasthat override other fields can also be put into this subform. Duringdownload, the DOLS Customize subform is loaded by a DSAPI filter 108 onthe server and all validation formulas are re-triggered to bring in anynew information.

III.A.7 Set Up Multiple Database Applications

Both the Web site developer and the Web site administrator must performtasks to enable a Domino Web application for offline use. The developerperforms these tasks to enable a Domino Web application for offline use:copies several design elements from DOLRES.NTF 116 (using DominoDesigner) to the Domino application being enabled for offline use; andedits and adds default values to the Offline Subscription Configurationprofile document.

Referring to FIG. 24, executing the following tasks enables a Domino Webapplication for offline use.

In step 521, DOLRES.NTF 116 (DOLS Resource Database) is opened in DominoDesigner.

In step 522, in the same Designer session, the Domino application to beenabled for offline use is opened.

In step 523, the following pages are copied from DOLRES.NTF 116 into theDomino application:

If the application includes more than one database, the DOLS designelements are only copied to the main database, and not to each of thedatabases.

-   -   a. DOLS Request Offline ID    -   b. DOLS Web Control.        This page loads ActiveX and/or plug-ins which enable “Go        offline” and “Go online” menu items from within the online and        offline Domino applications. When the user clicks “Go Offline”        or “Go online,” a pop-up menu appears with several options. This        is the recommended page to use for going offline. The preferred        way to use this page is to include it as a frame in the main        frameset of the application. Alternatively, the contents of this        page can be cut and pasted to another page or design element.        Each application can have only one Web control.    -   c. DOLS Load Download Page        This page is used to provide an icon instead of the DOLS Web        Control in the application. This page contains the necessary        JavaScript so that the end user clicks an icon to begin the        download. An advantage of using this page instead of the DOLS        Web Control page is that it downloads faster. Unlike the Web        Control page, there is no pop-up menu. The recommended way to        use this page is to include it as a frame in a frameset.        Alternatively, JavaScript can be cut and pasted to another page        or design element. The icon this page uses is named DOLS.GIF. If        it is desired to have the end user click a different icon, the        new icon image can be created by choosing Resources—Images,        clicking New Image Resource, and adding the new icon. Then        replace the references to DOLS.GIF in the JavaScript contained        in this page with references to the new icon.

In step 524, the following form is copied from DOLRES.NTF 116 into theDomino application:

-   -   a. DOLS Offline Configuration        This form contains the Offline Subscription Configuration        profile form.

In step 525, the following agent from DOLRES.NTF 116 is copied into theDomino application:

-   -   a. Edit Offline Configuration        This agent is used to create or edit an Offline Subscription        Configuration profile document. This agent is accessed from the        Actions menu of the Domino application being enabled for offline        use. (A Delete agent may be included in this template for        unusual circumstances, such as a failed upgrade.)

In step 526, the following subforms are copied from DOLRES.NTF 116 intothe Domino application:

-   -   a. DOLS Configuration Settings        This is the table of fields that can be configured, and inherits        its design from DOLRES.NTF 116.    -   b. DOLS Customize        This subform is used to customize the profile document. This is        the only subform that should be modified, and it can be left        hidden or mad visible. Fields or computed fields and be created,        and fields in other subforms can be modified dynamically.    -   c. DOLS Download Control        This form contains the JavaScript that loads the Web Control        when downloading. This subform only displays in a browser, and        inherits its design changes from DOLRES.NTF 116.    -   d. DOLS Download Instructions        This subform contains the default text that appears to the end        user during a download. To create different default text, choose        “Display only the custom contents below” in the Offline        Subscription Configuration profile document.

In step 527, the following images are copied from DOLRES.NTF 116 intothe Domino application:

-   -   a. DOLS.gif    -   b. iNotes_bnnr.gif    -   c. servers.gif

In step 528, DOLRES.NTF 116, the Domino application being createdcreating, and Domino Designer are closed.

In step 529, the Domino application just enabled for offline use isopened in the Notes client.

In step 530, an Offline Subscription Configuration profile document iscreated by choosing Actions—Edit Offline Configuration, and the fieldsof the Offline Subscription Configuration profile document filled in.

In step 531, the download page may be customized. This is the text thatis displayed in the browser of the Lotus iNotes Sync Manager when theoffline download begins.

In step 532, the Offline Subscription Configuration profile document issaved and closed.

In step 533, the Domino application is saved and closed.

Referring to FIG. 25, enabling multiple database applications foroffline use involves the following:

In step 541, all the databases in the application are identified at thebeginning.

In step 542, the main database 140 is identified and the DOLS designelements copied only to the main database.

In step 543, in the main database 140, a frameset is used as the openingpage of the Web application.

In step 544, one of the frames is specified as the Web Control Page.Alternatively, if not using a Web Control page, the frame may bespecified to be an icon by using DOLS Load Download Page.

In step 545, relative URLs and paths to application databases arespecified. Relative URLs and relative paths are used, and absolute URLsand paths, which may not work offline, are not used. For example, ifusing a URL to reference a database in the Domino data directory, arelative URL is used, such as /dev/mynsf.nsf. For other references tothe database (such as Database Open), relative paths, that is, pathsrelative to the data directory under which the database appears areused. Appropriate links and cross references from one database toanother are verified, again using links are relative and not absolute(so they work offline).

In step 546, using wildcards (*) or a directory, values are entered ineither of the following fields on the Rules page of the OfflineSubscription Configuration profile document 137:

-   -   Required files to replicate    -   Optional files to replicate        If explicit file names are entered in either of these fields,        the profile document 137 must be re-edited each time a file is        added or deleted. By using wildcards (*) in these fields, all        database files or all template files in a given directory are        automatically replicated, even files recently added. By using        the directory in either of these fields, all files in the        directory, whether NSF or NTF, are replicated, even files        recently added. For example:

III.B. Administrator Processes

The Domino Web site administrator controls the offline agents, offlinesecurity, ID deployment, and download options (including using a CD asan alternate way to install).

The administrator first sets up the server containing the Domino Webapplication to make sure that Domino Off-Line Services is installed andcan run. The administrator then opens the DOLS Administrationdatabase(DOLADMIN.NSF) and then the Offline Security Policy document inthe DOLS Administration database and fills in the fields that controlsecurity and IDs. The administrator may also open the OfflineSubscription Configuration profile document as a way to override defaultsettings. Finally, the administrator makes sure that needed agents workoffline.

Referring to FIG. 7 and FIG. 8, during the administrator scenario ofthis exemplary embodiment of the invention, an administrator upgrades aDomino 5.02, or a latter version, server 100 to include Domino OfflineServices (DOLS) software.

A Domino server 100 without DOLS would, in these FIG. 7 and FIG. 8,contain only program director <pdir> 102 and server 104 with HTTPelement 106. All other elements illustrated in FIG. 7 and FIG. 8 areextensions to the basic system 100 in support of DOLS. The administratoradds server side elements beyond 102, 104, and 106 and preparessubscription 136 for users to go offline in three steps.

The first step is to create databases 142 and 144 from template files159 and 157. Starting with a production level of notes template file157, the end product of the developer scenario, the administrator runsan install application (not shown) to install these additionalcapabilities, creating databases 140, 142 and 144 in the process. Theadministrator has template file 157 as part of the install or receivesfile 157 from a third party (which file was created using the designerexperience). The administrator, using template file 157 createssubscription main database 140, and may also create one or more requiredor optional databases 142 and 144 from standard .ntf file 159. Theadministrator is, in this process, determining what databases 140, 142,144 are part of subscription 136 (which will eventually correspond tosubscription 202 on client side 200).

The second step is to set the access control lists 167, 168 and 169 forevery database that is part of the subscription 136. This defines useraccess rights for those databases 140, 142, 144 and will require usersto log in when accessing those databases from browser 244. This log inis required for the authentication represented by line 308. Offlineconfiguration document 138 is part of subscription main database 140.

The third step executed by the administrator in setting up asubscription 136 is to edit offline configuration document 138 at leastone time using a Notes client 200. At a minimum, the administrator willlist in configuration document 138 the names and locations of requireddatabases 142 and optional databases 144. The administrator alsoselectively overrides default settings in configuration document 138.These configuration settings include properties of the subscription 136,including the file sets 124 needed for offline execution. Offlineconfiguration document 138 lists the default scheduling properties forsynchronization which effect execution of service manager 218 andsynchronization task 220 in the end user usage scenarios (yet to bediscussed), and the databases 140, 142, 144 that should be part ofsubscription 136. The remaining optional element that can be altered indocument 138 is the look and feel of download page 230 when it displaysin a browser 244. Many or all of these properties could be preset aspart of the design found in template file 157.

Template file 157 is the subscription main database Notes template file,described in Domino help for designers, and specifies the forms, views,agents—the design that governs the behavior of database 140, and whichmany similar databases may inherit from template 157.

This may end the administrator scenario. If no further activity done byadministrator, then end users will experience a prompt foridentification policy during download. Alternatively, the admin canactivate other policies, such as auto generate or lookup, by opening IDpolicy database 114 and creating security policy document 110 for thesecurity domains of the users listed in the access control lists(ACLs)on databases 140, 142 and 144.

III.B.1 Keep Track of Offline Users

In DOLADMIN.NSF 356, an administrator can keep track of offline users byclicking an Offline Users button to keep track of the followinginformation:

-   -   Name of each user    -   Name of the security domain(s)    -   Applications downloaded    -   Date(s) of the download

III.B.2 Set Up Selective Replication

This invention provides a way for administrators to control selectivereplication formulas.

In a Domino Web application that has been configured for offline use,selective replication settings can be specified for the offlineapplication. With this feature, limits can be set on what can be takenoff line. The properties boxes for a database and its design elementsinclude styles, options, and other settings that affect how the databaselooks to users. To change these properties, one must have designeraccess or higher in the database access control list, then open orselect the database, choose file-database-properties, and then changethe properties on any of the tabbed pages.

Specifically, to set up selective replication for an offline applicationin accordance with the preferred embodiment of the invention, thefollowing steps are executed:

-   1. Open the Database Properties box (not shown) for the database    which has been enabled for offline use.-   2. At the Database Basics tab, click “Replication Settings.”-   3. At the Replication Settings dialog box, click the Advanced    button.-   4. Click the computer button next to the “When computer” field and    enter “OfflineSync/DOLS.”-   5. At the same Advanced button, choose the replication settings. For    example, one can check “Replicate a subset of documents” and choose    the folders and views to be synchronized to the end users machine.    Documents can also be synchronized by formula; for example, by    selecting “Select by Formula” and entering a formula so that only    selected end users are able to synchronize a selected folder. The    following example shows a selective replication formula:

SELECT From=@UserName|Form=“DOLSofflineConfiguration”

-   6. To save the settings, click OK.

III.B.3 Set Up Agents for Offline Use

The administrator performs the following tasks to enable a Domino Webapplication for offline use: sets up the server; opens DOLADMIN.NSF andfills in the fields of the Offline Security Policy document; edits theOffline Subscription Configuration profile document and overridesdefaults as needed; and sets up agents to work offline.

Referring to FIG. 7, a Domino Web application 136 is enabled for offlineuse, as follows:

-   1. Set up the server 104.    This is done by running Domino Server Setup to configure the Domino    server, installing all Notes client programs to the same directory    (not necessarily the Domino server directory), running the Domino    Off-Line Services installer. The Install directory is the Domino    server directory.-   2. In Domino Administrator, open DOLADMIN.NSF, the DOLS    Administration database.-   3. Create an Offline Security Policy document 110 for the    application being enabled for offline use by choosing Create—DOLS    Security Policy.-   4. Fill in the fields of the Offline Security Policy document. If    IDs are being created dynamically, attach a Certifier ID.-   5. Save and close the Offline Security Policy document 110.-   6. Close DOLADMIN.NSF.-   7. Open the Server document. At the HTTP tab:    -   a. Make sure that “ndolextn.dll” is in the “DSAPI filter file        filename” field.    -   b. Set the output timeout to allow enough time for downloads.-   8. Open the access control list 167 for the Domino application 136    being enabled for offline operation (File—Database—Access Control),    and add the users and groups for whom access is to be granted to the    database 140, making sure that Anonymous has No Access.-   9. Edit the Offline Subscription Configuration profile document 138    to set up new default settings for the application 136.-   10. Check that the developer has copied all the design elements 116    to the application.-   11. Referring to FIG. 13, set up agents 560 to work offline, if the    Web application 136 uses them.

Referring to FIG. 22, the process continues as follows.

In step 501, the application 136 is opened.

In step 505 it is determined if application 136 uses agents, whetherrestricted or unrestricted, and users are to be able to use the agentsoffline.

If so, in step 506, the administrator sets up the agents 560 for offlineuse by setting up the groups 570, 573 and cross certificates 566 neededfor restricted and unrestricted agents 562 to execute off line.

A cross certifier implies as a prerequisite that two certificates 566,576 exist. Certifiers are foundation security identifiers generated topresent a unique key representation of a particular organization (notindividual). It is the basis of that organization's digital signature.An organization creates a certifier so that it can electronically signother elements within a security model. That is a certificate. A crosscertificate 566 is a secondary construct that gives enough informationto verify the signature of something signed by a certifier. Referring tothe example of FIG. 9, client side agent task 226 will only executesigned agents 562, 563. Task 226 must be able to verify the signature,so must have a cross certificate 576 that validates the signature to theacceptability level of local services ID 210.

The process for setting up groups and cross certificates is as follows:

In step 506, if the Domino Web application 136 has been enabled foroffline use and if it executes restricted agents 560, the administratorcreates the following group 570 in the Domino Directory 350:

DOLS-Restricted-Agents

In step 507, the full names of the users to this group are added. ForWeb agents, one of the following is used:

-   -   If the agent has been configured to run as a Web user (Agent        Properties box—Design tab—“For Web access: Run Agent as Web        user”), use the full name of the user(s;).    -   Otherwise, use the full name of the agent signer who modified it        last (for example: NewDevelopment/Lotus).        This name should also exist in what is defined in the Server        record (Security—Agent Restrictions) for defining who can use        the agent online on the server. The agent signer must have at        least Editor access on all databases that need agents to work        offline.

Again, in step 506, if the Domino Web application 136 has been enabledfor offline use and if it executes unrestricted agents 560, thefollowing group 573 is created in the Domino Directory 350:

DOLS-Unrestricted-Agents

In step 507, the full names of the users to this group 573 are added.For Web agents, one of the following is used:

-   -   If the agent has been configured to run as a Web user, use the        full name of the user(s). Otherwise, use the full name of the        agent signer who modified it last (for example:        NewDevelopment/Lotus).        This name should also exist in what is defined in the Server        record (Security—Agent Restrictions) for defining who can use        the agent online on the server. The agent signer must have at        least Editor access on all databases that need agents to work        offline.

In step 511, DOLCert.id (installed in the Domino data directory on theserver) is used as the certifier ID to create downloadable crosscertificates 568 in the Domino Directory 350 for each user ororganization specified as being able to execute agents 560.(Administration—Configuration—Certification—Cross-Certify.) DOLCert.idcreates cross certifiers issued by “O=DOLS.” An ID file or public keymay be used for the agent user and organization to generate the crosscertificate.

Steps 501-511 are executed at the server 100 with respect to application136. The same steps may be executed at server 101 with respect tosubscription 137, signed agent 561, and server directory 351 includingcertificates 565, cross certificates 567, downloadable crosscertificates 569, and group lists 571, 574, respectively.

Client 200 process steps for enabling execution at client 200 of clientside rendition 202, 562 of subscription 136 and agent 560 used byapplication 136 are as follows. (Similar steps would be executed wereclient 200 connected in step 512 to server 101 with respect tosubscription 137.)

In step 512, client 200 is connected to server 100.

In step 513, each time synchronization task 220 runs, before itreplicates any data in step 517, it synchronizes all security context,as described with respect to steps 514-516.

In step 514, group lists 570 and 573, on the server 100 connected to instep 512, is examined, and all names not already in client group lists572, 575 obtained.

In step 515, unionized group lists 572 and 575 are updated. These listsare of restricted and unrestricted signatories, user identities whichare allowed to execute agents.

In step 516, any downloadable cross certificates 568 matching newentries (from step 515) to group lists 572, 575 are downloaded todownloadable cross certificates file 576. Downloadable crosscertificates are used in verifying the electronic signatures of names inlists 572, 575.

In step 517, sync task 220 having now synchronized security contextbetween client 200 and server 100, subscription 136 data is replicatedto subscription 202. In this manner, group lists 572, 575 are corrected,cross certificates 564 downloaded to client directory 212 (asdownloadable cross certificates 576), and agents 562, including customagents written by third parties, used by application 202 may be allowedto run. Such agents 562, 563 contain signatures specifying names ofsignatories as well as an electronic signature for comparison withdownloadable cross certificates 576.

Third party written signed agents 562 are a particularly importantaspect of the preferred embodiments of the invention. The client runtime includes agent services 226 that executes these agents 526, 563.Agent services 226 has been unbundled and put into the run time, andthis requires that the security model be unbundled from the serverplatform to the run time. Advantages of the present invention includeprovision for bringing cross certificates 576 down to the client formultiple users, and provision for unionized group lists 572, 575.

In step 518, agent service 226 is activated to execute agent 562 inrestricted or unrestricted mode dependent upon successful comparison ofthe signature in agent 562 to a cross certificate 576 and correspondingauthority. This step includes the following. Agent code 226 determinesif an agent 562 is supposed to execute on event or schedule, and thenchecks the signature on the agent, looks to compare if there is amatching downloaded cross certificate 576, and will not proceed if thereis a mismatch or no locatable cross certificate. After verifying thatthe signature in agent code 562 can be authenticated, it checks grouplists 572 to determine the type of execution the authenticated signatoryis permitted: restricted or unrestricted.

III.B.4 Auto Issue with ID Reuse

QuickPlace could generate IDs on the fly. This invention provides forauto-issue of IDs from a Notes database, or the like, together withreuse of previously deployed IDs. New server tools are provided for IDgeneration, including tools for auto generation, table lookup, and userprompt.

In accordance with the invention, an administrator is enabled toconfigure a server to distribute user ID's through auto-generation,directory lookup, or user prompt, with the distribution mode beingselected based upon user security domain.

Referring to FIG. 7, ID policy database 114 provides a view toadministrators of security policy documents 110 for a plurality ofdomains.

Referring to FIG. 12, ID policy database 114 is shown in a preferredembodiment of the invention as DOLSADMIN NSF 356, with a view providedof certifier document 362 for domain /lotus/cam/ 358 and of certifierdocument 364 for domain /lotus/ibm/ 360.

A primary use that the administrator has for database 358 is to view andpost security documents 362, 364 to for each domain a selected IDpolicy, chosen from among autogen, lookup, and prompt. If theadministrator chooses for a given domain 358 a lookup policy, heprovides in certifier document 362 a pointer to the correct name andaddress book on the server (ID repository database 111 in FIG. 7). Ifthe administrator selects the autogen policy for a given domain 358, heattaches a certifier so indicating, which will cause use of autogen code368 to execute ID generation. If the administrator selects a promptpolicy, the certifier document so notes, causing execution of promptcode 366 in response to a need for a user ID. Prompt code is alsoexecuted if there is no certifier document for a given domain.

Thus, in accordance with this embodiment of the invention, IDs canauto-generate against multiple domains and execute different securitypolicies according to the domain. Users going off-line will, dependingupon the certifier document appropriate to the domain, be prompted fortheir ID, or have their ID issued by table lookup or auto generation.This security model enables the use by table lookup of ID's that havealready been deployed in instances where, for example, an extensiveNotes infrastructure already exists and the auto generation of ID's forthe establishment of a new infrastructure.

III.B.5 Control Access to Database: ACL & SSL

SSL is a security protocol that protects data by encrypting it as itpasses between servers and web clients. The administrator has threeoptions in allowing access to data over an SLL port: (1) anonymousaccess; (2) name and password access; and (3) access through clientcertificates. Depending on which of these types of access the serverallows for the SSL port and what the database ACL allows, the user mayaccess this database anonymously, may be authenticated with name andpassword authentication, or may use a client certificate.

III.C. Download Processes

Referring to FIG. 5, download comprises a four stage process. These are:(1) security context; (2) download service file sets; (3) uncompress andset up service file sets; (4) populate client subscription.

III.C.1 Security Context

Referring to FIG. 6, Stage 1, Security Context, executes on interfaces308 and 307.

Download control functionally renders from inside of download page 230.That is, when client 200 renders page 230 it displays the client sideactivation 234 of download control 146. In so doing, windows areactivated in a page, and information in that page is read to initiatedownloading. What is downloaded from server 100 to client 200 in thisprocess is determined by parameters in configuration document 232, whichis the client side 200 rendition of offline configuration document 138from subscription main database 140 on the server side 100.

A download element, or control, 146 is said to straddle the world ofserver 100 and client 200 objects managed by browser 244. It isimportant to carefully manage what is running on client 200 and server100 sides, and browser 244 is extended by element 146 straddling theboundary between them, represented by boundary 300. These elements 146typically execute on client 200 but read configuration parameters anddata from server 100, thus straddling boundary 300.

‘Going offline’ includes assembling in browser 244 a download page 230that combines offline configuration document 138 with download element146 to create a client side rendering of configuration document 232, anddownload control plug in or ActiveX 234. The resulting download page 230includes everything needed to download from the server 100 and installon client 200 all elements required to operate client 200 offline withrespect to server 100. (Throughout this description, unless otherwisestated, download includes both download and install functions.)

As download page 230 download control element plug in or ActiveX 234executes (Netscape or IE), client machine 200 is configured through fourstages. These are (I) establishing security context, (II) confirming website identity, (III) creating service file sets, and (IV) downloadingsubscription data.

Download element 146, by extending the capabilities of Netscape andMicrosoft IE, have allowed third parties to add unknown software toextend the functionality of browser 244, and such extensions become newelements of browser 244. The result is that browser 244 can no longer berelied upon by client 200 to protect its data and other objects, and theuser must rely on the providers of download controls 146 for thatpurpose. Stages I and II execute to deal with this exposure. Stage Iestablishes the security context by asking the user for permission tomodify client 200, in effect asking the user if it trusts the web site,or server 100. Stage II establishes whether or not the identity of theweb site can be confirmed.

The process represented by line 308 from offline configuration document138 to download page 230 first occurs, followed by the processrepresented by line 307 from Domino server API (DSAPI) ID extension 108through download control plugin or ActiveX 146 to download page 230.

Visiting a download page involves the transfer represented by line 308from offline configuration document 138 to download page 230 followed bythe action represented by line 307 from server 104 to download controlelement 234.

This is initial rendering.

When download control element plug in or ActiveX 234 activates indownload page 230, it initiates the download process, which includes,first, establishing a security context. In effect, the user is asked “doyou trust this site?”. Based on whether transfer 308 was secure orinsecure, the user is advised whether identity of the server site can beestablished. After first determining whether the site can be confirmed,and whether or not that can be confirmed, the user is then asked if theprocessing should be permitted to continue including installation ofprograms on the client machine 100.

In case of secure connection, the risk level accepted by the user is totrust or not trust a known entity to run programs on client machine 100.In the instance of an insecure connection, the user, if processing isallowed to continue, is in effect trusting a weakly confirmed entity torun programs on client machine 100, and this is typically done onlyinside an intranet.

Following 308 processing, the user is asked via download control element234 if download processing represented by line 307 is to proceed. Line307 represents the download transmission channel, which involvesprocessing of an ID context from Domino server API (DSAPI) ID generator108 through download control plug in or ActiveX 146 to the correspondingdownload page 230 element 234. Channel 307 inherits from channel 308 thesame security context: that is, its secure or insecure nature. The IDcontext provided by DSAPI ID extension 108 is in accordance with one ofthree policies, or forms: (1) an ID can be generated on server 104; (2)an ID can be determined from a database store 111 on server 100; an IDcan be requested from the user. In cases 1 and 2, an ID is shipped downas represented by channel 307. In case 3, the user will be prompted fora file previously received outside this system. A common used othermanner is an already in use mechanism for Notes Domino as a platform100, by way of which administrators create, IDs and get them to users insome other secure manner.

When DSAPI ID generator 108 is determining how to respond to a requeston channel 307, it looks in policy ID database 114 for a security policydocument 110 that matches the user login—specifically the securitydomain of that user, and based upon finding a matching domain, it willexecute a response as contained in the policy document (one of the abovethree policies will be found in the document). Policy documents arecreated and managed by a server administrator. If no match is found, orif one is found having policy 3, that says to ask the user, the userwill be asked (policy 3 also represents the default behavior). If apolicy match indicates policy case 2, lookup the ID in storage, thenDSAPI ID extension 108 looks into ID repository database 111 pointed toby a matching policy document 110. In case 1, auto generate policy, DSAPID extension 108 will detach from matching policy document 110 and use aNotes certification ID. It uses that ID to generate a brand new Notesuser ID to ship down as a response to a channel 307 request.

To utilize a certification ID, a password is stored on the same securitypolicy document 110. ID policy data base 114 can contain sensitiveinformation such as passwords and certification IDs that match them.These are tools normally safeguarded by administrators as the crownjewels, the keys to their security kingdom. Therefore ID policy database114 is implemented with a strong access control list (that is, onlyadministrators are allowed to access it).

In identifying a correct security domain from a user login ID,everything to right of first slash is domain. This is foundationalcharacteristics of Lotus NOTES. By way of example, to determine acorrect security domain or policy for a person that logs in asCarlKraenzel/CAM/LOTUS, the security policy first checked is that forCAM, and failing a match in CAM the LOTUS security policy is checked.

The information required to check for the correct security domain isprovided by a request on channel 307 inasmuch as download controlelement 234 obtains that information from the browser's context. Thebrowser 244 gets that information at a bare minimum by activatingchannel 308. The browser is required to get that required informationinasmuch as the subscription main database 140 has an access controllist 167 which requires through regular Domino processes that the userlog in over an HTTP connection before the download page 230 can render.Browser 244 continues to remember those credentials for subsequentrequests to server 104, such as on channel 307.

Off line configuration document 138 is contained inside subscriptionmain database 140 so that attempts to render it in the browser 244 willhave to pass access control list 167 checks for that database; thisrequires browser 244 to execute a log in. Log in credentials with whichthe browser logged in to render a download page are carried through on achannel 307 request for an ID to be found, generated, or otherwisehandled that matches those credentials.

A channel 308 access is a pure web access. A channel 307 transfer is arequest from server to supply the Notes ID equivalent of those webcredentials required for use later in Notes replication.

Download control element 234 establishes security context, firstdetermining if the user trusts server site, and then obtaining IDcontext. Then control 234 pulls down program executable files incompressed format of file sets 124, 126 and 128.

III.C.2 Download File Sets

Referring to FIG. 6, Stage 2, Download Service File Sets executes oninterface 309.

Interface 309 utilizes the same credentials and security context asinterfaces 307 and 308, that is HTTP or HTTPS, inasmuch as the user isstill logged in. Activating a request on the interface represented byline 309 instructs HTTP 106 to ship down file sets 124 as a response oninterface 309. Such 309 requests ask for .inf files 126, 128 thatcorrespond to the current client operating system, and the services 126that are needed to run the application on that operating system. Filesets .inf are header descriptions of the matching .exe files. The filesthat are needed of all types on the client 200 to run full text indexingare compressed into a self extracting ZIF file with suffix .exe.

Thus, a request on line 309 asks first for all the .inf files, sobrowser 244 will know versions and sizes of corresponding .exe files(this particularly important in upgrade or reinstall situations).Otherwise, information from the .inf files are used to display progressof download of corresponding .exe files. These .exe files reference aself extracting compressed file.

OS_locale 128 provides compressed resources appropriate to the languagelocale of the machine.

When download control 234 is preparing to make request on interface 309,an in itial determination as to what to request is made based uponinformation provided earlier by offline configuration document 138 andtransferred to download page 230 element 232, which is the downloadedinstance of offline configuration document 138. This informationspecifies the services 126 are needed to support this application. The.inf files are brought down first, compared against local files (ifany), and if an update or a new install is required, then additionalrequests made over interface 309 result in download the large .exe files(called the file sets, meaning sets of files that are compressed.) The.inf files are checked against local the local versions, enabling client200 to avoid having to download anything big over line 309, which intoday's technology may be a slower, network connection. In addition, aCD delivery mechanism may be provided, by which .exe files and .inffiles may be brought to the client machine.

III.C.3 Set Up File Sets

Referring to FIG. 9 and FIG. 10, during stage 3, service file sets areuncompressed and initialized. These steps are executed by downloadcontrol 234 as local processing on client machine 200, no networktraffic over interface 300 being involved. During this stage 3, elementson client side 200 are created, including those represented by elements204, 208 and 210, 212, 214, and 216. Subscription user ID 206 is the endproduct of the interface 307 request, and is stored during stage 3 in<name space> directory of element 204.

pdir program directory 208 on client receives the uncompressed DLLS.That is, local names.nsf 212, local mail.box 214, password.db 216databases and local services ID 210 are stored in <Data> directory 208.These are data files generically useful to any subscription that runsoffline. All these are uncompacted and configured during stage 3.

Local services ID 210 is generated dynamically so it is unique to everyclient machine 200 having an encryption key from locale 128. This key isused to encrypt password database 216 for all future storage of userpasswords.

Stage 3 continues by installing in the program director <pdir> of 208service manager 218, synchronization task 220, HTTP 222, index 224,agent 226, and custom 228. Additionally, local names .nsf 212 isconfigured with connection information for future Notes protocolrequests to connect to the server. At this time, subscription 202(including access control list (ACL) 203) does not yet exist, and is theone thing in client 200 not set up by end of stage 3.

III.C.4 Populate Client Subscription

Referring to FIGS. 7-10, stage 4 executes to populate subscription 202,which comprises local duplicates either in full or in subset ofdatabases 140, 142 and 144. Stage 4 thus brings down subscription data136, including subscription main database 140, required databases 142and optional databases 144 unique to this particular experience on thisweb server 100. This is the content and logic of the web application.All these database will have an access control list (ACL) objectattached to them.

Stage 4 activates service manager 218 and synchronization task 220 onclient machine 200. Manager 218 monitors progress and reports to user.Sync task 220 executes first time replication. It makes an access to 206and makes a protocol request 313 using Notes RPC as the protocol (notHTTP), requesting of server 104 that it replicate and to ship downinterface 313 the subscription 140, 142, 144 database main, required,and optional that are flagged.

Stage 4, if installing a subset of databases 140, 142, and 144,initially filters subscription user ID 206 against ACLs 167, 169 and 168on server copies of databases 140, 142, and 144. Such ACLs exist atdatabase level and also on subelements inside of databases. This is inaccord with Notes RPC protocol. Only those server 100 elements havingACLs to which user 206 is authorized access are accessible and may bedownloaded. The ACLs of those elements which are downloaded arereplicated in the local client 100 versions for continued assurance thatinformation in local copies is properly security restricted.

At the end of stage 4, optional processing occurs on subscription 202,as determined by configuration settings initially established in stage 1from configuration document 138, the client side rendition of which isconfiguration document 232. Example: if full text index services wererequired and downloaded, they would be activated now upon thesubscription at the end of stage 4. If there were custom services 228,they would be activated at this time as well. When stage 4 is complete,download control 234 announces successful completion.

Subscription links desktop 252, start menu 256 and driver tray 258 wereinstalled in stage 3. Uninstall 246 was made in stage 2.

III.D. CD Distribution

Referring to FIG. 3, server 60 is provided with a Domino On LineServices (DOLS) module which loads compressed ZIP files and client DLLscomprising a subscription to a client machine as client local replicas74 characterized by a logic model, data model and security modelproviding to the user an offline web site which may be kept insynchronization with server 60. Alternatively, various combinations ofcompressed ZIP files and client DLLs may be loaded to a client servicesinstall CD 72, which in turn may be loaded to the client machine.

Referring further to FIG. 3, an API for Lotus Notes is provided. Inaccordance with an exemplary embodiment of the invention, Notes programDLLs, or databases containing dynamic linked libraries, are renderedavailable to function across non-Notes user interfaces. This isaccomplished by, for example, loading an application onto a user'smachine from a client services install CD 72 onto which is packed theexperience of a web site as a local run time model 90, including logicmodel 76 comprising Notes DLLs (compressed ZIP files), data model 78,comprising nsf and .ntf files, and security model 80, comprising IDsecurity based on the ACFs applied to all databases replicated to theclient.

In accordance with level 82, an alternative distribution system forthese DLLs is to create a level 82 client services install CD 82. Thesecompressed ZIP files, comprising iNotes compressed, include compressedDLLs 70 and iNotes Sync manager, or service manager 218. Such a CD 72installation serves the purpose of speeding up installation time onclients which would otherwise have to download this material over a lowspeed data transmission line. Then, at the first access to the hostserver, DOLS does not need to download the DLLs (which are very large),and can skip to steps bringing down IDs, security information, and datato complete the set up of a local web site.

In accordance with level 84, CD 72 is loaded with a copy of the entireweb site, that is, the NSF databases comprising the web site withprograms executable on the client machine without having to access theserver, but including an invitation to do so. When the customer finallydoes access the server, data files may be replicated and synchronized,and the web site owner has registered this client as a customer.

In accordance with level 86, CD 72 is loaded with the Notes API program,which includes customer data, and the NSF's for iNotes installation.Notes API refers to run time file sets that support execution of NotesAPI programs. In the exemplary embodiment of FIG. 9, these arerepresented by custom file sets 228 and also by file sets 218, 220, 222,224, 226. It is an important aspect of this embodiment of the inventionthat customer data is brought a run time that executes on the clientmachine the same as it executes on the server—this is the same resultwhether downloaded from the web or pre-packed on a CD. The customer isthus provided a high degree of guarantee that the logic is executable,that the data is still editable, with the same behavior and same accessrights experienced when accessing a host based subscription. Thecustomer is provided a personal copy of the Web site that is fullyfunctional.

In this way a fully interactable web site is provided to a user who,after trying out the application on a client machine without accessingthe host server, may be teased into registering to the web server.

With respect to security, this is meaningful primarily in terms of “Isthe user being distinguished from other users?” This is generally onlymeaningful in the context of a connection to a server. Consequently,when distributing a CD, security is set up when the first user logs intoa server account. Thereafter, or when installed initially from the website, the client replica of the web site includes fully functionallogic, data, and security models.

While web site distribution via CD has been described, otherdistribution media may be used, such as removable hard drives, ZIPdisks, or prepackaged on the drives of new computers or lap top.

An unbundling of values to a local run time model may be executed asfollows: (1) installing and distributing to a customer at a client sitea CD that includes (a) the iNotes run time, (b) a Notes API program, (c)a program (in any language) which uses Notes API calls to store andretrieve data to a Notes database, (d) a standalone customer programwhich includes an invitation to connect to a web site; and (2)responsive the customer accepting the invitation, executing thereplication model.

A local, or client, application, may be downloaded from server 60 undercontrol of DOLS 62, as previously described in connection with FIGS.7-10, or via a client services CD to which the client DLLs andcompressed ZIP fils 70 have been loaded. When loaded from a CD or othersuch distribution medium, client 74 need never communicate with theserver 60. On the other hand, it may. In accordance with an importantaspect of the invention, a third party business partner, for example,may write a stand-alone application, such as a virus checker, that hasnothing to do with Notes but uses .nsf databases as a data store and theLotus indexing model to maintain third party local data. In this way,the stand-along application is rendered capable of registering to theLotus web site, which is powered by a Domino server 60, in order toupdate data 78 to the most recent version. Once registered, the user mayreplicate upward for centralized management, and once connected obtainthe full benefits of the security model.

In this way, a run time is brought to the customer's data that is thesame run time that executes on a server, giving the customer a highdegree of confidence that the logic is executable, that data is stilleditable, all with the same behavior and same access rights. Yet, suchan application need never have communicated with the server, it mayremain entirely client centered.

III.E. End User

The end user opens a Domino Web application that the Web site developerand administrator have enabled for offline use. In the initial screen ofthe Web application, the user clicks a Web control that contains thewords, “Go Offline.” A pop-up menu appears giving the user the option ofinstalling the Web application as a subscription on the local machine(client). A subscription includes the Domino Web application, itsrelated databases, and subscription property settings.

If this is the first time an end user is installing a subscription, theLotus iNotes Sync Manager utility is downloaded to the user's machine.Files needed for working offline in a secure environment and formanaging synchronization are also downloaded. The installation isseamless and nearly invisible to the end user. If download time is anissue, the end user can also use a CD to install Lotus iNotes SyncManager. If the end user already has a Notes ID, that ID can be used; ifnot, a new ID can be generated.

Once the download finishes, Lotus iNotes Sync Manager opensautomatically on the user's machine. Lotus iNotes Sync Manager isintegrated into the Windows desktop and lets the user manage multipleoffline subscriptions. The tasks users can perform using Lotus iNotesSync Manager include:

-   -   Opening the application offline to make changes to it    -   Opening the online Web application.    -   Setting standard synchronization settings.    -   Synchronizing the online and offline versions of the application        with each other.

Referring to FIGS. 9-10 and 14-15, an end user experiences servicemanager 218 and application page 238. The end user experience may alsoutilize application page 238 in an offline mode as is represented byline 319. When changes have occurred in that offline mode, the user maycause periodic synchronization between online/offline versions ofsubscription 136 and 202 to take place through scheduled or directcommands available from the interfaces presented by web control 241 orservice manager 218. The ability to work with private subscription copy202 reduces load on server 100, takes advantage of processing speeds andaccess speed of local processing by executing solely on client platform200, and minimizes the degree of information that must traverse acrossinterface 300 between clients 200 and server 100.

III.E.2 Service Manager Tasks

From service manager 218, a user can:

-   -   View subscriptions offline and online    -   Synchronize any changes between the Domino Web application and        the offline application    -   Choose synchronization settings from the Sync Options tab of the        Subscription Properties box    -   Stop active synchronizations    -   Remove installed offline subscriptions from the local machine

To launch Service manager 218, a user double-clicks, for example, aLotus iNotes icon on the Windows desktop or chooses Service manager 218from the Start menu (Start—Programs—Lotus iNotes Sync Manager—LotusiNotes Sync Manager).

Each time a user creates a subscription by accessing an offline-enabledWeb application and clicking a Web Control or icon, the subscription islisted in subscription window 263 of Service manager 218. In addition, ashortcut to that subscription may be created on the desktop. To launch asubscription 202 offline in a browser 244, the user clicks the icon forthe offline subscription on the desktop. This opens the Service manager218 and then opens the application in the offline browser 244.

By default, Service manager 218 runs all the time, often in thebackground. If the user exits from the Service manager 218, scheduledsynchronizations do not occur until it is restarted. The user can alsodisable Auto-start.

III.E.2.a HTTP

Referring to FIGS. 9 and 10, during the end-user scenario, oncesubscription 202 has been downloaded and service manager 218 installed,the user may launch service manager 218 to present a trivial interface270 for managing the services and subscriptions that are availableoffline, as is more fully described above with reference to FIG. 14. Theuser interface that service manager 218 presents is a simple list ofsubscriptions 281 with options to trigger synchronization, alter syncproperties such as scheduled unattended replication and synchronization,and limit the size of or delete subscriptions.

The properties of an individual subscription that a user may edit arethose which were preset by an administrator when editing offlineconfiguration document 138.

Service manager 218 typically will start up with each reboot of clientmachine 200, and is always running so that it can execute scheduledsynchronization in the background. It also allows the end user to open aweb browser 244 to the on-line or off-line version of subscription 202,136. If user visits on-line version 136, service manager 218 launchesbrowser 244 with the appropriate URL to cause browser to loadapplication page 238 from source subscription main database 140 throughprotocol connection 317.

III.E.2.b Application Page

Within application page 238 there may be a rendering of status JScript240 and time zone JScript 242, client side renderings established duringthe design scenario of status JScript 132 and/or time zone JScript 134.The design scenario may include enhancements to cause application page238 to conditionally display useful information or tools in both onlineand offline contexts.

The rest of the application page 238 executes when loaded from interface317 with full functionality known from Domino web server platform 100,as rendered specifically through HTTP service 106. It is a uniqueproposition of DOLS that when rendered from source 319, the architectureof client configuration is such that application page 238 is as fullyfunctional as when from source 317. Source 319 therefore has the sameprotocol and security attributes as source 317, with one exception: theuse of secure sockets SSL is disabled as unnecessary when makingconnections to a process that resides on the same machine.

III.E.2.c Synchronize/Concurrent Replication

The web synchronization control 241 provides a convenience interface tothe commands normally available (subset of commands) from servicemanager 218. It allows the user to select and see a pop up menu withoptions to synchronize now, go online or go offline, and installsubscription and subscription properties. Selecting install brings up aservice manager user interface for extended alteration of properties forsubscriptions. An install subscription option is a special conveniencelink to cause display of download page 230 for either first time installor reinstalls, and designers may choose to display this link as the wayfor users to get to download page 230.

While service manager 218 is running, it maintains schedules for allsubscriptions 202 which user has taken offline, which can be frommultiple servers 104 and from multiple user identities 206, each withseparate database groupings and synchronization rules and properties.Each subscription 202 has a users name (ID) and password from 216closely associated with it as well as the server source 104 from whichthe subscription has been taken. User names and passwords are in 216,which is encrypted with an encryption key taken from 210 local servicesID.

Service manager 218 presents an interface for setting a password on thelocal services ID 210. The act of setting that password effectivelypassword protects password database 216, requiring the end user atbrowser 244 to provide that password to service manager 218 every timeit starts before it can access database 216. This protects passwordswhich must be utilized by synchronization task 220 when executingscheduled or on demand replication initiated through service manager 218on behalf of the end user. When synchronization task 220 runs, itretrieves user name and password from database 216 appropriate to thesubscription 202 at hand and uses those credentials along withsubscription user ID 206 to satisfy and create a Notes remote procedurecall (RPC) to initiate a protocol connection via line 313 as waspreviously described with respect to first time download setup.

In accordance with a preferred embodiment of the invention, simultaneousor concurrent replication is provided. Simultaneous replication isprovided first with respect to a plurality of databases, and second withrespect to a plurality of user ID's.

When replicating to a plurality of databases on a single CPU client froma plurality of servers on different hosts, in accordance with apreferred embodiment of the invention, concurrent replication isprovided. The CPU will, in this case, perform preemptive multitasking,allocating CPU cycles to whichever replication process is not waiting oninput.

Simultaneous replication of a plurality of subscriptions makes sense todo when the user triggers them all on demand, or their schedules allcome due at the same time.

Simultaneous replication may be executed with respect to twosubscriptions, but serially with respect to the nsf databases within agiven subscription. This model, of serial replication of databaseswithin a single subscription, makes sense when dealing with a singleserver CPU, but may not when dealing with a multi-processor at theserver side.

A user may exercise the option to store passwords and schedulereplication to occur unattended, for example, at 2:00 a.m. when dial-upcharges are relatively low. If a password is stored, it is stored inpassword database 336 for use during replication without prompting theuser for its entry. Otherwise, replication will not proceed until theuser enters the password.

Referring further to FIG. 11, a third party has at server 100 asubscription 334 protected by a password 348 also stored in passworddatabase 336. In accordance with an exemplary embodiment of theinvention, the manner in which the first user (the user who ownspasswords 340, 342 and 344) accesses subscription 334 is as follows.

Consider the situation where, for example, the first user (a manager) isentitled to assume the role of the second user (an employee), and thefirst user desires to verify that the second user does not have accessby way of subscription 334 to, for example, manager data which istightly stored in the NSFs of subscription 330. However, in thissituation, subscription 334 may include some a database common tosubscription 330 but including different data documents.

In accordance with this exemplary embodiment of the invention, the firstuser may (provided he can enter the user name and password of the seconduser) take the second user's subscription offline to client 200 where itwill be filtered by the second user's identity rather than that of thefirst user. Now, client 200 has replicated copies of subscriptions 330and 334, which may provide different views of the same data, but which,because of filtering by different identities, will not be crosscontaminated. In this case, filtering by different identities is finelygrained filtering of data according to roles and levels, rather than atthe document and directory level as in other applications.

If not filtered by different identities, but rather at the document ordirectory level, the situation would be as follows. The first user hasat client 200 a local replica of subscription 330, replicated using userID and password 342. He then switches to ID and password 348 to assumethe role of the second user (assuming he is entitled to do so becauseof, say, a manager/employee relationship), and downloads a replica ofsubscription 334. In this example, because the data files in the localreplica of subscription 330 at client 200 are not filtered by user IDand password 342, data files in subscription 330 common to subscriptions330 and 334 would be contaminated by being brought into synchronizationwith the data files of subscription 334 (documents in a subscription 330database being deleted by not being present in the correspondingsubscription 334 database).

This operation is also distinguished from a replication model in whichfiltering is done at the file or directory level. In this case, in orderto replicate to a second subscription, the user first unloads a firstsubscription from his client machine, and then replicates down thesecond subscription. This model does not support concurrent, unattendedreplication of a plurality of subscriptions. That is, at 2:00 a.m., onlyone subscription would replicate. In order to replicate a plurality ofsubscriptions, the user would have to wake up and enter a second user IDand password to start replication of the second subscription. In thisscenario, only one subscription could be put on an automated replicationschedule at a time.

III.E.2.d Indexing

The other tasks managed by service manager 218, including index 224,agent 226, and custom 228 are activated by the service manager 218according to events or schedules appropriate for the service. Indexservice 224 ensures that views and full text indexes utilized bysubscriptions 136 are kept up to date in the offline subscription 202.Users experience those indexes as part of application pages 238 whenrendered by off line HTTP service 222, but HTTP service 222 does notensure views or indexes are kept up to date.

III.E.2.e Agent

Agent 226 task executes Lotus Script agents either on schedule or event,extending the processing associated with application page 238 to havecustomizable Notes Domino workflow. These services 222, 224, are 226 arethe same services utilized by platform 100, hence the name DominoOffline Services (DOLS).

III.E.2.f Custom

Custom services 228 represents services that a third party may create asaugmentations to the web application 238 that execute in an offlinecontext. These provide either duplicate processing for customizationfound in platform 100 or specialized augmentation unique to offlineusage reserved only to client 200. A third party can extend server 100and not client 200, extend client 200 and not server 100, or have bothclient and server the same.

An example of custom services 228 is a MAPI messaging API, which is anindustry standard protocol for mail applications. Another example wouldlet Microsoft Outlook™ open Notes Domino mail subscriptions. Where HTTPtask 222 converts Domino and NSF information to and from HTML, a customMAPI component 228 may be provided for conversions to and from MAPIstandard exchange formats. It is a foundational premise of customservices 228 that other extension formats to allow NSF information torender in arbitrary other user interfaces and products. In this respect,API programs that utilize the Notes API now can utilize the offlineservices as a runtime for Notes Domino programs.

In accordance with a further embodiment of the invention, in order totake advantage of an unbundled run time, it is necessary to provide amethod for downloading an API program to a user's desktop.

Three methods for so doing have been described with reference to FIG. 4by use of a CD distribution media.

Another approach is to execute custom code install from the server tothe client. This involves the creation of a permission moment, a momentin which the user is prompted to respond to two queries: (1) siteidentity: does the user believe that the server is who it representsitself to be; and (2) site trust: does the user trust the server toplace the custom code on the client machine.

Referring to FIG. 26, in accordance with the preferred embodiment of theinvention, site identity is associated with the secure sockets (SSL)signature, and whether the connection to the web site has been madeusing HTTPS (secure) or HTTP (not secure). If in step 553 it isdetermined that the user has connected to the server web site in step551 using SSL, then the site identity and site trust queries arepresented by stating (1) in step 555, the site has been verified asbeing what it represents itself to be, and (2) in step 556, asking doyou trust the web site to download custom code to your client machine?If the user has not connected to the server web site using SSL, then thesite identity and site trust queries are presented by stating (1) instep 554, the site has not been verified as being what it representsitself to be, and (2) again in step 556, asking do you trust the website to download custom code to your client machine?

Download of the custom code proceeds based upon the user determinationin step 557 that the web site, whether verified or not, is to betrusted. The advantage in this approach is with respect toaccountability, and a direct chain is provided for determining fault ifthe download code is inappropriate or faulty.

In accordance with a further embodiment of the invention, customdownload is incrementally performed, with pieces, such as a subset or afeature, downloaded as it is needed.

Recapping, by way of a high level overview, during the serveradministration experience, the system administrator creates policydocuments; during the web site developer experience, design inclusions116, NTF samples 115, and status JScript 132 design elements are broughtinto main database 140; during the download experience, subscription 136is downloaded to subscription 202; during the end user experience, theend user interfaces with application page 238.

Advantages over the Prior Art

It is an advantage of the invention that there is provided a system andmethod for enhancing a workflow, enterprise, and mail-enabledapplication server and platform to support distributed computing andremote execution of web applications.

It is a further advantage of the invention that there is provided asystem and method for enhancing a workflow, enterprise and mail-enabledweb application to allow distributed computing and remote execution ofcreation of collaborative user communities.

Alternative Embodiments

It will be appreciated that, although specific embodiments of theinvention have been described herein for purposes of illustration,various modifications may be made without departing from the spirit andscope of the invention. In particular, it is within the scope of theinvention to provide a computer program product or program element, or aprogram storage or memory device such as a solid or fluid transmissionmedium, magnetic or optical wire, tape or disc, or the like, for storingsignals readable by a machine, for controlling the operation of acomputer according to the method of the invention and/or to structureits components in accordance with the system of the invention.

Further, each step of the method may be executed on any generalcomputer, such as an IBM System 390, AS/400, PC or the like and pursuantto one or more, or a part of one or more, program elements, modules orobjects generated from any programming language, such as C++, Java,Pl/1, Fortran or the like. And still further, each said step, or a fileor object or the like implementing each said step, may be executed byspecial purpose hardware or a circuit module designed for that purpose.

Accordingly, the scope of protection of this invention is limited onlyby the following claims and their equivalents.

We claim:
 1. A system comprising: a server comprising a processor andmemory; a client device comprising a processor and memory; a developerdefined template file of design elements initializing design of asubscription on said server; a first server side user interface,accessible from said server, responsive to said template file fordefining an offline configuration document for said subscription,wherein said offline configuration document displays a plurality oftabbed pages comprising configuration settings and properties of saidsubscription, wherein an administrator selects services to synchronizeschedules, synchronization frequency intervals, limitations andexceptions to the synchronized schedules, and synchronization ruleswithin the offline configuration document, wherein the synchronizationrules define file rules, date filtering synchronization options whereinthe date filtering synchronization options define a last number of daysfor said synchronization, halt conditions synchronization optionswherein the halt conditions synchronization options define a maximumsize of an offline database, and synchronization optional actions; asecond server side user interface, accessible from said server,responsive to said template file for defining offline security for saidsubscription, wherein said administrator selects a security policy forsaid subscription, wherein said subscription is a collection ofdatabases including off-line web applications with synchronizationschedules, accessible with an off-line instantiation, wherein saidoff-line instantiation of said subscription includes the off-line webapplications as fully functional replicas of on-line web applicationsincluding security, data, and program logic of the on-line webapplications; and a single client side user interface, displayed on saidclient device, to allow a user to selectively open, toggle between, andsimultaneously interact with said subscription in an onlineinstantiation and the off-line instantiation from the single client sideuser interface, wherein a currently open substantiation is based uponsaid synchronization rules and said security policy previously set onsaid server by said administrator for said subscription.
 2. The systemof claim 1, said offline configuration document further comprisingtabbed pages for presenting defaults of properties for clientsubscriptions.
 3. The system of claim 2, said tabbed pages including abasic page, a services page, a schedules page, a rules page, and adownload page field.
 4. The system of claim 3, said tabbed pagesproviding for administrator selection services to install offline andcustom services to install offline.
 5. The system of 1, said offlinesecurity for said subscription being configured by a security policyform presenting for administrator selection security domain definitionand ID deployment policy.
 6. The system of claim 5, said ID deploymentpolicy including selection options for prompt, auto generate, anddirectory lookup deployment of IDs.
 7. A method comprising: accessing adeveloper defined template file of design elements initializing designof a subscription on a server; responsive to said template file,displaying a first server side user interface accessible from saidserver, defining an offline configuration document for saidsubscription, wherein said offline configuration document displays aplurality of tabbed pages comprising configuration settings andproperties of said subscription, wherein an administrator selectsservices to synchronize schedules, synchronization frequency intervals,limitations and exceptions to the synchronized schedules, andsynchronization rules within the offline configuration document, whereinthe synchronization rules define file rules, date filteringsynchronization options wherein the date filtering synchronizationoptions define a last number of days for said synchronization, haltconditions synchronization options wherein the halt conditionssynchronization options define a maximum size of an offline database,and synchronization optional actions; responsive to said template file,displaying a second server side user interface accessible from saidserver, defining offline security for said subscription, wherein saidadministrator selects a security policy for said subscription, whereinsaid subscription is a collection of databases including off-line webapplications with synchronization schedules, accessible with an off-lineinstantiation, wherein said off-line instantiation of said subscriptionincludes the off-line web applications as fully functional replicas ofon-line web applications including security, data, and program logic ofthe on-line web applications; and displaying, to a user, a single clientside interface on a client device for selectively opening, togglingbetween, and allowing for simultaneous interaction with saidsubscription in an online instantiation and the off-line instantiationfrom the single client side user interface, wherein a currently opensubstantiation is based upon said synchronization rules and saidsecurity policy previously set on said server by said administrator forsaid subscription.
 8. The method of claim 7, said subscriptionsproviding a logical grouping of data, application implementations, andapplication-instance security context and off-line subscriptionscontaining client-side runtime and framework for a fully functioningoffline server.
 9. The method of claim 8, said offline configurationdocument further comprising tabbed pages for presenting defaults ofproperties for client subscriptions.
 10. The method of claim 9, saidtabbed pages including a basic page, a services page, a schedules page,a rules page, and a download page field.
 11. The method of claim 10,said tabbed pages providing for administrator selection services toinstall offline and custom services to install offline.
 12. The methodof claim 8, said offline security for said subscription being configuredby a security policy form presenting for administrator selectionsecurity domain definition and ID deployment policy.
 13. The method ofclaim 12, said ID deployment policy including selection options forprompt, auto generate, and directory lookup deployment of IDs.
 14. Acomputer program product comprising a non-transitory computer readablemedium having a plurality of instructions stored thereon, which, whenexecuted by a processor, cause said processor to perform operationscomprising: accessing a developer defined template file of designelements initializing design of a subscription on a server; responsiveto said template file, displaying a first server side user interfaceaccessible from said server, defining an offline configuration documentfor said subscription, wherein said offline configuration documentdisplays a plurality of tabbed pages comprising configuration settingsand properties of said subscription, wherein an administrator selectsservices to synchronize schedules, synchronization frequency intervals,limitations and exceptions to the synchronized schedules, andsynchronization rules within the offline configuration document, whereinthe date filtering synchronization options define a last number of daysfor said synchronization, halt conditions synchronization optionswherein the halt conditions synchronization options define a maximumsize of an offline database, and synchronization optional actions;responsive to said template file, displaying a second server side userinterface accessible from said server, defining offline security forsaid subscription, wherein said administrator selects a security policyfor said subscription, wherein said subscription is a collection ofdatabases including off-line web applications with synchronizationschedules, accessible with an off-line instantiation, wherein saidoff-line instantiation of said subscription includes the off-line webapplications as fully functional replicas of on-line web applicationsincluding security, data, and program logic of the on-line webapplications; and displaying, to a user, a single client side interfaceon a client device for selectively opening, toggling between, andallowing for simultaneous interaction with said subscription in anonline instantiation and the off-line instantiation from the singleclient side user interface, wherein a currently open substantiation isbased upon said synchronization rules and said security policypreviously set on said server by said administrator for saidsubscription.
 15. The computer program product of claim 14, saidoperations further comprising defining said subscriptions as a logicalgrouping of data, application implementations, and application-instancesecurity context and defining off-line subscriptions as containingclient-side runtime and framework for a fully functioning offlineserver.
 16. The computer program product of claim 15, said operationsfurther comprising defining said offline configuration document asincluding tabbed pages for presenting defaults of properties for clientsubscriptions.
 17. The computer program product of claim 16, saidoperations further comprising defining said tabbed pages as including abasic page, a services page, a schedules page, a rules page, and adownload page field.
 18. The computer program product of claim 17, saidoperations further comprising defining tabbed pages for providing foradministrator selection services to install offline and custom servicesto install offline.
 19. The computer program product of claim 15, saidoperations further comprising configuring said offline security for saidsubscription by a security policy form presenting for administratorselection security domain definition and ID deployment policy.
 20. Thecomputer program product of claim 19, said operations further comprisingdefining ID deployment policy including selection options for prompt,auto generate, and directory lookup deployment of IDs.